尝试验证 XSD 文档时出现问题
Problem when I try to validate an XSD document
当我对标签 "number" (numero) 的 XSD 文档施加限制时,当我验证它时出现错误。如果我删除限制,XSD 文档将被验证。有什么想法吗?
<?xml version="1.0" encoding="UTF-8"?>
<alumno dni="12345678A"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="alumno.xsd">
<nombre>Juan Garcia</nombre>
<direccion>
<calle>Avenida de la Fuente</calle>
<numero>6</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924555555</telefono>
<telefono>658741236</telefono>
</alumno>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="alumno">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="nombre"/>
<xs:element name="direccion">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="calle"/>
<xs:element type="xs:byte" name="numero"/>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="500"/>
</xs:restriction>
</xs:simpleType>
<xs:element type="xs:string" name="ciudad"/>
<xs:element type="xs:string" name="provincia"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element type="xs:int" name="telefono" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute type="xs:string" name="dni"/>
</xs:complexType>
</xs:element>
</xs:schema>
您的问题是您用两种类型定义了元素 numero
:您将其定义为 xs:byte
,同时尝试创建一个 xs:simpleType
(边界也超过一个字节的限制)。此外,您没有在 xs:element
定义中包含 xs:simpleType
。
因此将元素 numero
的定义修改为
<xs:element name="numero">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="500"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
一切都会按预期进行。
当我对标签 "number" (numero) 的 XSD 文档施加限制时,当我验证它时出现错误。如果我删除限制,XSD 文档将被验证。有什么想法吗?
<?xml version="1.0" encoding="UTF-8"?>
<alumno dni="12345678A"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="alumno.xsd">
<nombre>Juan Garcia</nombre>
<direccion>
<calle>Avenida de la Fuente</calle>
<numero>6</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924555555</telefono>
<telefono>658741236</telefono>
</alumno>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="alumno">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="nombre"/>
<xs:element name="direccion">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="calle"/>
<xs:element type="xs:byte" name="numero"/>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="500"/>
</xs:restriction>
</xs:simpleType>
<xs:element type="xs:string" name="ciudad"/>
<xs:element type="xs:string" name="provincia"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element type="xs:int" name="telefono" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute type="xs:string" name="dni"/>
</xs:complexType>
</xs:element>
</xs:schema>
您的问题是您用两种类型定义了元素 numero
:您将其定义为 xs:byte
,同时尝试创建一个 xs:simpleType
(边界也超过一个字节的限制)。此外,您没有在 xs:element
定义中包含 xs:simpleType
。
因此将元素 numero
的定义修改为
<xs:element name="numero">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="500"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
一切都会按预期进行。