我很难搞清楚这个。我希望为我所拥有的文件制作一个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文件(我按原样接收它并且无法更改它)。
帮助将不胜感激,因为没有我能找到的例子真的帮助了我......谢谢!
答案 0 :(得分:1)
我必须根据属性“name”验证每个字段的内容。
这是众所周知的XSD 1.0限制,你无法做到这一点。这在XSD 1.1中得到修复,其中包含一个名为“条件类型赋值”的工具。它已经在Saxon和Xerces中实现,但据我所知,它不在任何其他模式处理器中实现。