有没有办法将[字符包含在xml元素名称中?
例如
<AWSECommerceService.ItemSearch.ItemSearch.Request[0].SearchIndex>Electronics</AWSECommerceService.ItemSearch.ItemSearch.Request[0].SearchIndex>
使用它的原因是在SVG中隐藏请求输入值是使用名称指定请求键的xml元素指定的。
例如:
<xforms:model id="form1">
<xforms:instance>
<q>toyota</q>
</xforms:instance>
<xforms:submission id="submit1" xforms:method="get" xforms:action="http://www.google.ca/search" />
的请求
答案 0 :(得分:5)
你不能 - 它不是XML元素名称的有效部分。
来自the spec:
ASCII符号和标点符号 标记,以及一个相当大的组 Unicode符号字符,是 从姓名中排除,因为他们是 在上下文中作为分隔符更有用 其中XML名称在XML之外使用 文件;提供这个组给 那些背景下的硬性保证 什么不能成为XML名称的一部分。
然后BNF遵循 允许的内容:
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]
Name ::= NameStartChar (NameChar)*
Names ::= Name (#x20 Name)*
Nmtoken ::= (NameChar)+
Nmtokens ::= Nmtoken (#x20 Nmtoken)*
答案 1 :(得分:3)
不可能。 XML spec将元素名称定义为NameStartChar
,后跟NameChar
,其中任何一个都不包含方括号