Escape [在xml文件中的元素名称中

时间:2013-09-27 11:45:43

标签: xml escaping

我不确定是否可能,但我需要形成一个名称以'['开头并以']结尾的元素。像这样的东西

<element_name>
   <[name-with-brackets] atributte1="value" />
</element_name>

有没有办法在元素名称中替换那些括号字符。我知道我可以通过

中的元素数据中的atributte值来逃避它们
&#91;  -->  <Element_name atribute="&#91;name-with-brackets&#93;" />

在我的样本中:

<element_name>
   <&#91;name-with-brackets&#93; atributte1="value" />
</element_name>

但它不适用于元素名称

感谢

1 个答案:

答案 0 :(得分:3)

嗯,你不能这样做,根据specs

  

名称必须的第一个字符是NameStartChar,以及任何其他字符   字符必须是NameChars;此机制用于防止名称   从欧洲(ASCII)数字开始或基本组合   字符。

NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] 
                      | [#xD8-#xF6] | [#xF8-#x2FF]
                      | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] 
                      | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF]
                      | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]

NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 
                           | [#x0300-#x036F] | [#x203F-#x2040]
  

鼓励文档作者使用有意义的名称   自然语言中的单词或单词组合,并避免   名称中的符号或空格字符。请注意,COLON,   HYPHEN-MINUS,FULL STOP(句号),LOW LINE(下划线)和MIDDLE   明确允许DOT。