错误:
s4s-elt-must-match.1:'viviendas'的内容必须匹配(注释?,(simpleType | complexType)?,(unique | key | keyref)*))。从以下问题开始发现问题:complextype。
架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://wwww.vivienda.io"
xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.vivienda.io">
<xs:element name="viviendas">
<xs:complextype>
<xs:sequence maxoccurs="unbounded">
<xs:element name="vivienda" minoccurs="1">
<xs:complextype>
<xs:sequence>
<xs:element name="direccion">
<xs:complextype>
<xs:sequence>
<xs:element name="calle"></xs:element>
<xs:element name="numero"></xs:element>
<xs:element name="localidad"></xs:element>
<xs:element name="provincia"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="refCatastral"></xs:element>
<xs:element name="habitaciones">
<xs:complextype>
<xs:sequence>
<xs:element name="habitacion" minoccurs="1">
<xs:complextype>
<xs:attribute name="area" use="required" type="xs:string">
<xs:complextype>
<xs:restriction base="xs:integer">
<xs:mininclusive value="1"/>
<xs:maxlength value="2"/>
</xs:restriction>
</xs:complextype>
</xs:attribute>
<xs:attribute name="tipo" use="required" >
<xs:complextype>
<xs:restriction base="xs:string">
<xs:pattern value="salon|cocina|baño|dormitorio"/>
</xs:restriction>
</xs:complextype>
</xs:attribute>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="servicios">
<xs:complextype>
<xs:sequence>
<xs:element name="servicio" minoccurs="1"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="comprador" minoccurs="0" maxoccurs="1">
<xs:complextype>
<xs:attribute name="dni" use="required">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{9}[A-Z]{1}"/>
</xs:restriction>
</xs:simpletype>
</xs:attribute>
<xs:sequence>
<xs:element name="nombre"></xs:element>
<xs:element name="edad" >
<xs:simpletype>
<xs:restriction base="xs:integer">
<xs:mininclusive value="1"/>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element name="ref_catastral"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:schema>
答案 0 :(得分:3)
XML标签是CaSe SenSitIve。 complexType
!= complextype
。您需要在整个架构中修复它 - 它希望找到<xs:complexType>
,而是找到<xs:complextype>
,这是无效的。
看起来您在其他地方也会遇到类似问题 - 例如,simpleType
,maxLength
是其他标签,其外壳与您在架构中使用的小写名称不同。在修复每个错误时,验证软件应指出下一个错误。
答案 1 :(得分:2)
正如Dan Field所说,你必须在complexType
(以及所有XSD元素名称)中处理案例。但是,您的XSD还有许多问题需要解决。这是完整的列表,然后是完全更正的XSD:
xs:complextype
- &gt; xs:complexType
maxoccurs
- &gt; maxOccurs
minoccurs
- &gt; minOccurs
xs:attribute
不能拥有xs:complexType
孩子。mininclusive
- &gt; minInclusive
maxlength
- &gt; maxLength
但maxLength
不能作为方面出现
对xs:integer
的限制;已更改为maxInclusive="99"
。xs:string
无法与xs:attribute
一起显示
也可以通过xs:simpleType
指定本地类型。xs:simpleType
- &gt; xs:simpleType
xs:attribute
必须在后出现,而不是xs:sequence
之前。以上是适用于您的XSD的更正,以便不再存在其他错误:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://wwww.vivienda.io"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.vivienda.io">
<xs:element name="viviendas">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="vivienda" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="direccion">
<xs:complexType>
<xs:sequence>
<xs:element name="calle"></xs:element>
<xs:element name="numero"></xs:element>
<xs:element name="localidad"></xs:element>
<xs:element name="provincia"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="refCatastral"></xs:element>
<xs:element name="habitaciones">
<xs:complexType>
<xs:sequence>
<xs:element name="habitacion" minOccurs="1">
<xs:complexType>
<xs:attribute name="area" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="99"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="tipo" use="required" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="salon|cocina|baño|dormitorio"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="servicios">
<xs:complexType>
<xs:sequence>
<xs:element name="servicio" minOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="comprador" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="nombre"></xs:element>
<xs:element name="edad" >
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ref_catastral"></xs:element>
</xs:sequence>
<xs:attribute name="dni" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{9}[A-Z]{1}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>