当我对我的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>
一切都会按预期工作。