如何使用随机元素和固定属性为XML创建XSD
这是XML文件的片段,如何使用随机元素和固定属性为XML创建XSD,xml,xsd,Xml,Xsd,这是XML文件的片段,,是随机的,,,和是固定的。我需要创建一个XSD文件来验证这个XML <?xml version="1.0" encoding="UTF-8"?> <result> <result_ok>1</result_ok> <total_count>6</total_count> <page>1</page> <total_pages>1<
,
<代码>是随机的,
,
,
和
是固定的。我需要创建一个XSD文件来验证这个XML
<?xml version="1.0" encoding="UTF-8"?>
<result>
<result_ok>1</result_ok>
<total_count>6</total_count>
<page>1</page>
<total_pages>1</total_pages>
<results_per_page>50</results_per_page>
<data>
<_0>
<id>12</id>
<contact_id/>
<status>Complete</status>
<is_test_data>1</is_test_data>
</_0>
<_7>
<id>13</id>
<contact_id/>
<status>Complete</status>
<is_test_data>1</is_test_data>
</_7>
<_2>
<id>14</id>
<contact_id/>
<status>Complete</status>
<is_test_data>1</is_test_data>
</_2>
<_6>
<id>15</id>
<contact_id/>
<status>Complete</status>
<is_test_data>1</is_test_data>
</_6>
.
.
.
.
<_100>
<id>15</id>
<contact_id/>
<status>Complete</status>
<is_test_data>1</is_test_data>
</_100>
</data>
</result>
1.
6.
1.
1.
50
12
完成
1.
13
完成
1.
14
完成
1.
15
完成
1.
.
.
.
.
15
完成
1.
这是我创建的XSD,但不确定如何为随机元素创建模式
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="apiresult">
<xs:complexType>
<xs:sequence>
<xs:element name="result_ok" type="xs:int" />
<xs:element name="total_count" type="xs:int" />
<xs:element name="page" type="xs:int" />
<xs:element name="total_pages" type="xs:int" />
<xs:element name="results_per_page" type="xs:int" />
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element name="_0">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int" />
<xs:element name="contact_id" />
<xs:element name="status" type="xs:string" />
<xs:element name="is_test_data" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
您不能使用XSD执行此操作。(除非基本上使用XSD 1.1断言进行整个验证,但实际上根本不使用XSD)
如果您想验证这个奇怪的XML,我建议首先将它转换成更主流的东西,例如使用XSLT更改所有元素名称。如果您能够更改
的,和谢谢sergio,我如何在XSD中使用随机元素,那么使用XSD将非常容易。我确信所有的元素都是(“u”+一个数值)。在大多数情况下,元素都是有序的,例如,…您可以通过删除元素的XSD内容模型,并根据需要添加尽可能多的XPath断言来指定和检查内容是否符合预期。这是一个很长很难的过程,您可以在其他问题中看到xpath和断言的示例。感谢您的建议,XSD和XSLT对我来说都是全新的。你能给我一个样本吗?对不起,我不为人写代码。我只是试着给他们指出正确的方向。无论如何,如果你想学习一门新语言,从一个你不懂的例子开始不是最好的方法:你需要做一些阅读。谢谢你的评论,我发现了这个