Good afternoon StackOverflow community. I'm having the following error in my XSD file.
Error - Line 13, 21: org.xml.sax.SAXParseException; lineNumber: 13; columnNumber: 21; s4s-elt-must-match.1: The content of 'dadesdelafactura' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: complexType.
I've tried switching from complexType to simpleType, still wasn't working.
Here is my XML code:
<?xml version="1.0" encoding="UTF-8"?>
<factura xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="validacio.xsd">
<dadesdelafactura estat="pendent">
<logo>http://prntscr.com/qcgl3c</logo>
<nfactura>PML1434901N106</nfactura>
<referencia>121901203779/03</referencia>
<dataemissio>07/10/2019</dataemissio>
<periodefacturacio>
<de>2019-08-04</de>
<fins>2019-10-02</fins>
</periodefacturacio>
<datacarreg>14 de octubre de 2019</datacarreg>
<dadesemissor>
<empresa>Endesa Energía. S.A. Unipersonal</empresa>
<cif>28196547A</cif>
<direccio>
<carrer>Transformador</carrer>
<numero>nº 60</numero>
<pis>ff</pis>
<porta>ff</porta>
<cp>ff</cp>
<ciutat>ff</ciutat>
</direccio>
<correu>[email protected]</correu>
<web>endesa.com</web>
<codipostal>28042</codipostal>
<ciutat>MADRID</ciutat>
<telefon tipus="fixe">9165489658</telefon>
</dadesemissor>
<dadesreceptor>
<nom>MATTHEW</nom>
<cognom>JAMES BELLANY</cognom>
<nif>40568745J</nif>
<direccio>Drones, 5-B</direccio>
<correu>[email protected]</correu>
<codipostal>17001</codipostal>
<ciutat>GIRONA</ciutat>
<telefon tipus="mobil">689215497</telefon>
</dadesreceptor>
</dadesdelafactura>
<resumidadesdepagament>
<taula>
<potencia>47,52</potencia>
<energia>67,77</energia>
<descomptes>-8,07</descomptes>
<altres>1,58</altres>
<impostos>29,48</impostos>
<total>138,28</total>
</taula>
<formulari>
<metodepagament>
<targeta>1939394995494</targeta>
</metodepagament>
<datacarregform>14 d'octubre de 2019</datacarregform>
<iban>ES91 2100 0418 4502 0005 1332</iban>
<codmandat>EO9421002100573420257340</codmandat>
<versio>0004</versio>
</formulari>
</resumidadesdepagament>
<infoconsumelectric>
<taula>
<fila>
<dada>470kWH</dada>
<dada>AGO</dada>
<dada>2018</dada>
</fila>
<fila>
<dada>460kWh</dada>
<dada>OCT</dada>
<dada>2018</dada>
</fila>
<fila>
<dada>510kWh</dada>
<dada>DIC</dada>
<dada>2018</dada>
</fila>
<fila>
<dada>784kWh</dada>
<dada>FEB</dada>
<dada>2019</dada>
</fila>
<fila>
<dada>530kWh</dada>
<dada>ABR</dada>
<dada>2019</dada>
</fila>
<fila>
<dada>960kWh</dada>
<dada>AGO</dada>
<dada>2019</dada>
</fila>
<fila>
<dada>410kWh</dada>
<dada>OCT</dada>
<dada>2019</dada>
</fila>
</taula>
<grafic>
<x>1120</x>
<mes>AGO</mes>
<any>18</any>
<x>960</x>
<mes>OCT</mes>
<any>18</any>
<x>800</x>
<mes>DIC</mes>
<any>18</any>
<x>640</x>
<mes>FEB</mes>
<any>19</any>
<x>480</x>
<mes>ABR</mes>
<any>19</any>
<x>320</x>
<mes>AGO</mes>
<any>19</any>
<x>160</x>
<mes>OCT</mes>
<any>19</any>
</grafic>
<addicionalgrafic>
<costfactura>2.34€ / dia</costfactura>
<costultims14mesos>2.65€ / dia</costultims14mesos>
<consumdarrerany>3.715 kWh</consumdarrerany>
</addicionalgrafic>
</infoconsumelectric>
</factura>
Here is my XSD code:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="dadesdelafactura">
<xs:complexType>
<xs:attribute name="estat">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="pendent|pagada"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType>
<xs:sequence>
<xs:element name="logo" type="xs:string" />
<xs:element name="nfactura" type="xs:integer"/>
<xs:element name="referencia" type="xs:string"/>
<xs:element name="dataemissio" type="xs:date"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="periodefacturacio">
<xs:sequence>
<xs:element name="de" type="xs:date"></xs:element>
<xs:element name="fins" type="xs:date"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType>
<xs:sequence>
<xs:element name="datacarreg" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="dadesemissor">
<xs:sequence>
<xs:element name="empresa" type="xs:string"></xs:element>
<xs:element name="cif" type="xs:string">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{9}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="direccio" type="xs:string"></xs:element>
<xs:element name="correu" type="xs:string"></xs:element>
<xs:element name="web" type="xs:string"></xs:element>
<xs:element name="codipostal" type="xs:string"></xs:element>
<xs:element name="ciutat" type="xs:string"></xs:element>
<xs:element name="telefon">
<xs:attribute name="tipus">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="fixe|mobil"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="dadesreceptor">
<xs:sequence>
<xs:element name="nom" type="xs:string"></xs:element>
<xs:element name="cognom" minOcurrs="0" maxOcurrs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLenght value="50"></xs:maxLenght>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nif" type="xs:string"></xs:element>
<xs:element name="direccio" type="xs:string"></xs:element>
<xs:element name="correu" type="xs:string" minOcurrs="0" maxOcurrs="1">
<xs:simpleType>
<xs:restriction>
<xs:pattern value="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codipostal" type="xs:integer"></xs:element>
<xs:element name="ciutat" type="xs:string"></xs:element>
<xs:element name="telefon" type="xs:integer" minOcurrs="0" maxOcurrs="1">
<xs:attribute name="tipus">
<xs:simpleType>
<xs:restriction>
<xs:pattern value="fix|mobil"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="resumidadesdepagament">
<xs:complexType>
<xs:sequence>
<xs:element name="taula">
<xs:complexType>
<xs:sequence>
<xs:element name="potencia" type="xs:integer"></xs:element>
<xs:element name="energia" type="xs:integer"></xs:element>
<xs:element name="descomptes" type="xs:integer"></xs:element>
<xs:element name="altres" type="xs:integer"></xs:element>
<xs:element name="impostos" type="xs:integer"></xs:element>
<xs:element name="total" type="xs:integer"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="formulari">
<xs:complexType>
<xs:sequence>
<xs:element name="metodepagament" type="xs:string">
<xs:complexType>
<xs:choice>
<xs:element name="comptat" type="xs:integer"></xs:element>
<xs:element name="transferencia" type="xs:string">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="/^([A-Z]{2})([0-9]{2})([A-Z0-9]{9,30})$/" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="targeta" type="targeta"></xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="datacarregform" type="xs:date"></xs:element>
<xs:element name="iban" type="xs:string"></xs:element>
<xs:element name="codmandat" type="xs:string"></xs:element>
<xs:element name="versio" type="xs:integer"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="infoconsumelectric">
<xs:complexType>
<xs:sequence>
<xs:element name="taula" minOcurrs="0" maxOcurrs="unbounded">
<xs:complexType minOcurrs="0" maxOcurrs="unbounded">
<xs:sequence>
<xs:element name="fila">
<xs:complexType>
<xs:sequence>
<xs:element name="dada" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Hope this info is useful.