2011-08-21 57 views
0

我的XML文件看起来是这样的:XSD的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模式,对于这个文件,这样的两个节点,而无需考虑位置的文件中可以有重复的名字。 这个文件中的任何节点都应该被允许有无限的子节点,以及任何子级别。

我该如何实现这个目标?

+2

这不是很好的XML设计。您的数据应该被编码为属性或元素*值*,而不是元素名称本身。 XML Schema在这里对你没有帮助。 – skaffman

+0

谢谢。我会尝试不同的方式。 – Sandeep

回答

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区分大小写,所以将所有内容都写成小写字母可以避免以后出现可怕错误的机会

相关问题