0

有没有办法在 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" />

将导致对http://www.google.ca/search?q=toyota的请求

4

2 回答 2

5

您不能 - 它不是 XML 元素名称的有效部分。

规格

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)*
于 2009-03-12T21:17:11.977 回答
3

不可能。XML 规范将元素名称定义为 aNameStartChar后跟NameChars,并且它们都不包含方括号

于 2009-03-12T21:17:56.187 回答