我的XML文件看起来像这样:
<Fields>
<Humanities>
<Performing_Arts>
<Dance />
<Music />
</Performing_Arts>
<Visual_Arts>
<Painting />
<Sculptue />
</Visual_Arts>
</Humanities>
<Social_Sciences>
<Psychology>
<Cultural_Psychology />
<Social_Psychology />
</Psychology>
</Social_Sciences>
</Fields>
我想为这个文件编写一个XML Schema,这样就不会有两个节点,无论文件中的位置如何都有重复的名称。 应该允许此文件中的任何节点具有无限子节点,任何子级别。
我如何实现这一目标?
答案 0 :(得分:0)
skaffman是对的,你需要将你的值作为属性或元素包含在内,如果你不确定,w3学校有很好的教程;
http://www.w3schools.com/xml/xml_elements.asp http://www.w3schools.com/xml/xml_attributes.asp
答案 1 :(得分:0)
您的数据的可能xml表示的示例可能是:
<fields>
<department name="Humanities">
<subject name="Peforming Arts">
<topic name="Dance"/>
<topic name="Music"/>
</subject>
<subject name="Visual Arts">
<topic name="Painting"/>
<topic name="Sculpture"/>
</subject>
</department>
<department name="Social Sciences">
<subject name="Psychology">
<topic name="Cultural Psychology"/>
<topic name="Social Psychology"/>
</subject>
</department>
</fields>
注意:
您可以看到这大致相当于具有三个表的数据库:部门,主题和主题,以及父和子之间的FK关系。这实际上是XML封装的内容,但是在文本形式中,在设计布局时需要牢记这一点。
我已经将所有小写名称用于元素和属性。这是一个个人的事情,因为xsl / xpath区分大小写,所以使所有小写都避免了以后可怕的错误的机会