gpt4 book ai didi

c# - 如何为具有不同名称的元素编写有效的 xsd

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:35 24 4
gpt4 key购买 nike

我想用 xsd 模式验证 xml,但我不知道如何为名称可变的元素创建正确的 xsd 模式。我的 xml 文档:

<Settings xmlns="main">
<Object>
<Rules>
<Rule0>
<Range>0 to 0</Range>
<String>SomeString</String>
<Integer>80</Integer>
<Enabled>No</Enabled>
</Rule0>
<Rule0>
<Range>0 to 0</Range>
<String>SomeString</String>
<Integer>80</Integer>
<Enabled>No</Enabled>
</Rule0>
</Rules>
<ObjectEnabled>No</ObjectEnabled>
</Object>
</Settings

还有我的xsd文件:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"           targetNamespace="main" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Settings">
<xs:complexType>
<xs:sequence>
<xs:element name="Object">
<xs:complexType>
<xs:sequence>
<xs:element name="Rules">
<xs:complexType>
<xs:sequence>
<xs:element name="?" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Range"/>
<xs:element type="xs:string" name="String"/>
<xs:element type="xs:byte" name="Integer"/>
<xs:element type="xs:string" name="Enabled"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element type="xs:string" name="ObjectEnabled"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>

当然不是“Rule1”,它可能是“Blablabla”。我知道我不能输入通配符或问号,所以我恳请您的帮助。

最佳答案

我认为你必须重新组织一下元素。

而不是有不同的元素...

<Rule0 />
<Rule1 />

你可以写...

<Rule name="rule0" />
<Rule name="rule1" />

将元素视为描述所有规则属性的类,而不是描述单个规则属性的对象。

关于c# - 如何为具有不同名称的元素编写有效的 xsd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14771903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com