当我在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>
答案 0 :(得分:2)
您的问题是,您用两种类型定义了元素numero
:将其定义为xs:byte
,同时尝试创建xs:simpleType
(其边界也超出了字节的限制)。另外,您没有在xs:simpleType
定义中包含xs:element
。
因此,将元素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>
一切都会按要求进行。