0 votes

Comment inclure [ dans le nom d'un élément xml

Existe-t-il un moyen d'inclure le caractère [ dans le nom d'un élément xml ?

Par exemple

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

La raison de cette utilisation est qu'en SVG, les valeurs d'entrée des requêtes cachées sont spécifiées en utilisant des éléments xml dont le nom spécifie la clé de la requête.

Par exemple :

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

entraînerait une demande de http://www.google.ca/search?q=toyota

5voto

Jon Skeet Points 692016

Vous ne pouvez pas - ce n'est pas une partie valide d'un nom d'élément XML.

De la spécification :

Les symboles et la ponctuation ASCII ainsi qu'un groupe assez important de caractères de symboles Unicode, sont exclus des noms parce qu'ils sont plus plus utiles comme délimiteurs dans des contextes où les noms XML sont utilisés en dehors de XML ; fournir ce groupe donne ces contextes des garanties solides sur ce qui ne peut pas faire partie d'un nom XML.

Il s'ensuit une BNF pour ce que est autorisé :

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

3voto

Gareth Points 42402

Pas possible. Le site Spécification XML définit un nom d'élément comme étant un NameStartChar suivi par NameChar et aucun d'entre eux ne contient de crochets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X