我已经使用XSD实用程序来转换我拥有的XML块:
<parentsets>
<set name="aaa">
<GroupSet name="GS1" >
<Group>Group1</Group>
<Group>Group2</Group>
<Group>Group3</Group>
</GroupSet>
<GroupSet name="GS2" >
<Group>Group4</Group>
<Group>Group5</Group>
<Group>Group6</Group>
</GroupSet>
</set>
</parentsets>
我运行创建XSD文件的XSD实用程序。然后再次运行该实用程序,将XSD转换为c# sharp模型(.cs)。
问题是很多我认为是"噪音"的东西正在被制造出来。首先,XSD实用程序似乎第一次为XSD文件创建了一些额外的字段,标签为"itemsField"。
然后还有只能被描述为重复分支的东西,例如,父节点'pollingsets'在标签为'pollingsetsSet'的情况下再次创建。其他节点如"Group"变成"GroupField"。总而言之,生成的XSD完全是一团糟。
我不确定我在这里错过了什么,也许在运行XSD实用程序之前需要在XML中进行一些设置?
我的目标是创建一个与我的XML模式匹配的模型。然后加载XML文档并将其传递给相应的模型,该模型由某些业务逻辑使用。因此,为什么我试图沿着转换到XSD的路线,然后使用相同的XSD实用程序转换到。cs文件。
谢谢。
更新
XSD示例:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="parentsets" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="parentsets" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="set">
<xs:complexType>
<xs:sequence>
<xs:element name="GroupSet" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Group" nillable="true" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent msdata:ColumnName="Group_Text" msdata:Ordinal="0">
<xs:extension base="xs:string">
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
我决定使用通过google搜索找到的一个免费的在线XML到XSD转换器,它似乎帮助清理了XSD实用程序所带来的一些噪音/混乱。