Я получаю сообщение xml с неизвестными элементами имен переменных... то есть они не предопределены...
Я знаю только, что может быть 0 или более из этих элементов, наряду с некоторыми другими, которые являются обязательными...
например
<root>
<service>my service</service>
<resource>my resource</resource>
<action>update</action>
<parameters>
<field1>value1</field1>
<field2>value2</field2>
<field3>value3</field3>
</parameters>
</root>
то есть я не знаю, что будет передано как "параметры", я знаю только, что будет 0 или более элементов со значением, не допускается более глубокое размещение тэгов....
Я думал о чем-то вроде
<?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>
конечно, сложная часть
<xs:element name="*" maxOccurs="unbounded">
Можно ли сделать такую вещь?
как я могу определить файл xsd, который проверяет такое сообщение?
-
Я проверил ссылку w3c на
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#NCName
и он говорит:
"Лексическое пространство · NCName - это множество всех строк, которые · соответствуют · созданию NCName [Пространства имен в XML]".
так что это значит?
Кроме того... не могли бы вы посоветовать мне простой способ проверить соответствие с определением xsd?