尝试验证 XSD 文档时出现问题



当我对我的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>

一切都会按预期工作。

最新更新