如何使用随机元素和固定属性为XML创建XSD

如何使用随机元素和固定属性为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<

这是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</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对我来说都是全新的。你能给我一个样本吗?对不起,我不为人写代码。我只是试着给他们指出正确的方向。无论如何,如果你想学习一门新语言,从一个你不懂的例子开始不是最好的方法:你需要做一些阅读。谢谢你的评论,我发现了这个