在尝试生成我的XSD时,我正在遇到这个错误,无法弄清楚我做错了什么; 我的代码看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="FICH">
<xs:complexType>
<xs:sequence>
<xs:element name="cabeza">
<xs:complexType>
<xs:sequence>
<xs:element name="VERSION_ORIG" type="Version"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DATA_MAJ">
<xs:complexType>
<xs:sequence>
<xs:element name="DATA1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="VERSION_SIT_NOM" type="Version"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:assert test="CABEZA/VERSION_ORIG = DATA_MAJ/VERSION_SIT_NOM"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="YYMM">
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9]{2}[01|02|03|04|05|06|07|08|09|10|11|12]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Version">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{2}.[0-9]{2}.[0-9]{2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="emptyString">
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
我们的想法是元素CABEZA/VERSION_ORIG必须等于DATA_MAJ/VERSION_SIT_NOM.我正在寻找一些解决方案,但一切似乎都适合我.
提前致谢
你的模式文档对我来说看起来不错(更重要的是,对 Saxon 9 来说也是如此)。
因此,导致错误消息的最可能原因是 (1) 您正在使用 XSD 1.0 处理器来处理 XSD 1.1 架构文档,以及 (2) 在这种情况下,您的处理器没有提供世界上最好的错误消息。目前(2013 年初)XSD 1.1 由 Saxon 和 Xerces J 测试版支持。如果您使用其他 XSD 验证器,您可能需要联系供应商或开发人员,询问他们何时支持 XSD 1.1。(如果他们认为用户不关心的话,没有人会转向 1.1。)
| 归档时间: |
|
| 查看次数: |
3579 次 |
| 最近记录: |