comment puis-je définir un fichier xsd qui permet à des inconnus (générique) éléments?
Je suis de la réception d'un message xml avec des inconnus nom de la variable d'éléments... qui est, ils ne sont pas prédéfinies...
Je sais seulement il peut y avoir 0 ou plusieurs de ces éléments, au jeu complet avec quelques autres qui sont obligatoires...
par exemple
<root>
<service>my service</service>
<resource>my resource</resource>
<action>update</action>
<parameters>
<field1>value1</field1>
<field2>value2</field2>
<field3>value3</field3>
</parameters>
</root>
qui est, je ne sais pas ce qui va être passé sous "paramètres", je sais seulement il sera de 0 ou plusieurs éléments avec une valeur, à une profondeur d'imbrication de balise permis....
Je pensais à quelque chose comme
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="service" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="resource" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="action" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="parameters">
<xs:complexType>
<xs:element name="*" maxOccurs="unbounded">
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
bien sûr, la partie la plus difficile est
<xs:element name="*" maxOccurs="unbounded">
est-il possible de faire sucha une chose?
comment puis-je définir un fichier xsd qui valide un tel message?
--
J'ai vérifié le w3c référence à
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#NCName
et il dit:
"L' ·lexicales de l'espace· de NCName est l'ensemble de toutes les chaînes qui ·du match· de la NCName de production de [les espaces de nommage dans XML]."
donc, ça veut dire quoi?
en plus... pourriez-vous me recommander quelque moyen facile de tester la conformité avec une définition xsd?
OriginalL'auteur opensas | 2009-06-03
Vous devez vous connecter pour publier un commentaire.
Ce que vous voulez est un générique de particules, pour les détails, voir
http://www.w3.org/TR/xmlschema-1/#Wildcards
De le faire, vous pouvez utiliser xs:tout. Notez que xs:element et xs:tout ne peut pas être placé directement à l'intérieur d'un xs:complexType. Vous avez besoin d'un conteneur, comme une séquence ou d'un choix.
Un schéma valide qui gère les caractères génériques est ci-dessous:
OriginalL'auteur
Essayez ceci:
OriginalL'auteur