具有相同名称但属性“名称”不同的复杂类型

时间:2011-05-18 13:29:00

标签: xml xsd schema

我很难搞清楚这个。我希望为我所拥有的文件制作一个XML Schema,但实际上似乎找不到一个很好的方法。这是它的样子:

<field name="NameOfField1">
  <typeofvalue name="enumeration">
    <val> val </val>
  </type>
</field>

<field name="NameOfField2">
  <typeofvalue name="float">
    <val> val </val>
  </type>
</field>

<field name="NameOfField3">
  <otherinfo name="otherinfo">
     <typeofvalue name="integer">
       <val> val </val>
     </type>
  </otherinfo>
</field>

我必须根据属性“name”验证每个字段的内容。例如,如果“Val”中的值需要是包含值“None,Apple,Orange”的枚举,或者它是0到15之间的整数......等等。每个字段“name”只能在xml文件中出现一次,我无法控制XML文件(我按原样接收它并且无法更改它)。

帮助将不胜感激,因为没有我能找到的例子真的帮助了我......谢谢!

1 个答案:

答案 0 :(得分:1)

  

我必须根据属性“name”验证每个字段的内容。

这是众所周知的XSD 1.0限制,你无法做到这一点。这在XSD 1.1中得到修复,其中包含一个名为“条件类型赋值”的工具。它已经在Saxon和Xerces中实现,但据我所知,它不在任何其他模式处理器中实现。