具有所有唯一节点名称的XML XSD
我的XML文件如下所示:具有所有唯一节点名称的XML XSD,xsd,Xsd,我的XML文件如下所示: <Fields> <Humanities> <Performing_Arts> <Dance /> <Music /> </Performing_Arts> <Visual_Arts> <Painting /> <Sculptue /> </Visual_Arts
<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模式,这样无论文件中的位置如何,两个节点都不能有重复的名称。
此文件中的任何节点都应允许有无限的子节点,可以连接到任何子级别
我该如何实现这个目标?斯卡夫曼说得很对,你需要将你的值作为属性或元素括起来,如果你不确定,w3学校在这方面有很好的教程
http://www.w3schools.com/xml/xml_attributes.asp您的数据可能的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>
注:
您可以看到,这大致相当于一个包含三个表的数据库:department、subject和topic,以及父级和子级之间的FK关系。这确实是XML封装的内容,但是是以文本形式封装的,并且是在设计布局时要记住的事情
我对元素和属性使用了所有小写名称。这是个人的事情,因为xsl/xpath是区分大小写的,所以将所有内容都小写可以避免以后出现可怕的错误这不是好的XML设计。数据应编码为属性或元素值,而不是元素名称本身。XML模式在这里对您没有帮助。谢谢。我会尝试不同的方法。