嵌套数据XML设计
希望在XML中嵌套(无限级别)元素。像这样:嵌套数据XML设计,xml,schema,dtd,Xml,Schema,Dtd,希望在XML中嵌套(无限级别)元素。像这样: <items> <item> <name>Item One</name> <item> <name>Item Two</name> </item> <item> <name>Item Three</name&
<items>
<item>
<name>Item One</name>
<item>
<name>Item Two</name>
</item>
<item>
<name>Item Three</name>
<item>
<name>Item Four</name>
</item> <!-- etc... -->
</item>
</item>
</items>
项目一
项目二
项目三
项目四
不过。在浏览解决方案时,我注意到在的评论中:
尽管上述内容格式良好,但它不会针对任何不合理的DTD进行验证
两件事,嵌套相似元素的更好方法是什么,其次是DTD的设计
更新:希望根据XML模式而不是DTD进行验证。DTD允许您定义如下递归结构。事实上,如果XML不能处理这个问题,它将是非常无用的
<!ELEMENT items (item*)>
<!ELEMENT item (name,item*)>
<!ELEMENT name (#PCDATA)>
XSD也允许您这样做。只是写得多一点:
<xsd:element name="items">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="item" type="itemType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="item" type="itemType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
我不知道DTD,但您可以在W3C XML模式中实现。:)在前面简要阅读了有关模式的内容,我肯定会使用它而不是DTD。谢谢。我能否确认,这是一种非常令人满意且高效的存储方式,例如,以分层形式存储类别列表。