XSD架构中的递归 [英] Recursion in XSD Schemas
本文介绍了XSD架构中的递归的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要创建一个递归的XSD架构来验证XML文档的树结构。
示例XML:
I need to create a recursive XSD schema that validates a tree structure of an XML document.
Sample XML:
<?xml version="1.0" encoding="UTF-8"?>
<MooNElements>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
</MooNElement>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
</MooNElement>
</MooNElement>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
</MooNElement>
</MooNElement>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
</MooNElement>
<MooNElement>
<MooNElement>
<MooNParameters>
<MooNParameter/>
<MooNParameter/>
</MooNParameters>
<MooNElement>
<MooNParameters>
<MooNParameter/>
</MooNParameters>
<MooNElement>
<MooNParameters>
<MooNParameter/>
</MooNParameters>
</MooNElement>
</MooNElement>
</MooNElement>
</MooNElement>
</MooNElements>
我使用VS 2010创建了以下XSD
XSD:
I had created the following XSD using VS 2010
XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MooNElements">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="MooNElement">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="MooNParameters">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="MooNParameter" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="MooNElement">
<xs:complexType>
<xs:sequence>
<xs:element name="MooNParameters">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="MooNParameter" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="MooNElement">
<xs:complexType>
<xs:sequence>
<xs:element name="MooNParameters">
<xs:complexType>
<xs:sequence>
<xs:element name="MooNParameter" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MooNElement">
<xs:complexType>
<xs:sequence>
<xs:element name="MooNParameters">
<xs:complexType>
<xs:sequence>
<xs:element name="MooNParameter" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
如何简化这个以验证递归节点?
谢谢,
Sudheendra
How to simplify this inorder to validate the recursive nodes?
Thanks,
Sudheendra
推荐答案
我建议使用 xsd.exe [ ^ ],当你想从xml文件创建xsd时很有用。
如需了解更多信息,请参阅:
如何:使用XML模式定义工具生成类和XML模式文档 [ ^ ]
使用xsd.exe为XML序列化和De生成实体类-Serialization [ ^ ]
从XML到XSD [ ^ ]
I'd suggest to use xsd.exe[^], which is helpful when you want to create xsd from xml file.
For further information, please see:
How to: Use the XML Schema Definition Tool to Generate Classes and XML Schema Documents[^]
Auto generating Entity classes with xsd.exe for XML Serialization and De-Serialization[^]
From XML to XSD[^]
这篇关于XSD架构中的递归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文