2009-03-12 15 views
0

Gibt es eine Möglichkeit, das [Zeichen in einem XML-Elementnamen einzuschließen?Wie man [in den xml-Elementnamen einfügt

Zum Beispiel

<AWSECommerceService.ItemSearch.ItemSearch.Request[0].SearchIndex>Electronics</AWSECommerceService.ItemSearch.ItemSearch.Request[0].SearchIndex> 

Der Grund für dies ist, dass in SVG hidden Anforderungseingangswerte angegeben werden unter Verwendung von XML-Elemente, deren Namen gibt die Anforderungstaste.

Zum Beispiel:

<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" /> 

in einer Anfrage an http://www.google.ca/search?q=toyota führen würde

Antwort

5

Sie können nicht - es ist kein gültiger Teil eines XML-Element Namen.

Von the spec:

Die ASCII-Zeichen und Interpunktions Zeichen, zusammen mit einer ziemlich großen Gruppe von Unicode-Symbolzeichen, von Namen ausgeschlossen sind, weil sie nützlicher als Trennzeichen in Kontexten sind, wo XML-Namen werden außerhalb von XML-Dokumenten verwendet; Bereitstellung dieser Gruppe gibt diese Kontexte hard garantiert über was nicht Teil eines XML-Namens sein kann.

Es folgt dann BNF für das, was ist erlaubt:

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)* 
+0

Danke für die Antwort! Das ist eine ernsthafte Einschränkung von svg xforms, da Sie vielleicht Request-Parameter benötigen, die [in ihrem Namen haben und ich keine andere Möglichkeit finden konnte, versteckte Parameter in eine Anfrage aufzunehmen, als durch die Definition von xforms-Elementen (xml-Elementen) an ein UI-Steuerelement gebunden – user54729

3

Nicht möglich. Die XML spec definiert einen Elementnamen als ein NameStartChar gefolgt von NameChar s und keiner von denen enthalten eckige Klammern

Verwandte Themen