1

First of all, don't mind about XML names, because it's in Spanish. So, basically I've been trying to fix this looking in a lot of websites, but I still don't know why is my XSD giving me this error:

s4s-elt-invalid-content.1: The content of 'TipoEquipo' is invalid. Element 'sequence' is invalid, misplaced, or occurs too often.

Here is my XML:

<jornada num="23" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="jornada.xsd">
    <partido>
        <equipo nombre="Celta">
            <goles>
                <gol min="45">Santi Mina</gol>
                <gol min="47">Brais Méndez</gol>
                <gol min="68">Santi Mina</gol>
            </goles>
            <entrenador>Coudet</entrenador>
        </equipo>
        <equipo>Elche
            <goles>
                <gol min="50">Emiliano Rigoni</gol>
            </goles>
        </equipo>
        <resultado>3-1</resultado>
        <estadio>Balaídos</estadio>
        <fecha>2021-02-12</fecha>
        <espectadores>0</espectadores>
    </partido>
    <partido>
        <equipo nombre="Sevilla">
            <goles>
                <gol min="57">El Haddadi</gol>
            </goles>
            <entrenador>Lopetegui</entrenador>
        </equipo>
        <equipo nombre="Huesca"/>
        <resultado>1-0</resultado>
        <estadio>Sánchez Pizjuán</estadio>
        <fecha>2021-02-13</fecha>
    </partido>
    <partido>
        <equipo nombre="Granada">
            <goles>
                <gol min="66">Yangel Herrera</gol>
            </goles>
        </equipo>
        <equipo nombre="Atlético de Madrid">
            <entrenador>Simeone</entrenador>
            <goles>
                <gol min="63">Marcos Llorente</gol>
                <gol min="75">Ángel Correa</gol>
            </goles>
        </equipo>
        <resultado>1-2</resultado>
        <estadio>Los Cármenes</estadio>
        <fecha>2021-02-13</fecha>
        <espectadores>0</espectadores>
    </partido>
    <partido>
        <equipo nombre="Villarreal">
            <goles>
                <gol min="65" penalti="true">Gerard Moreno</gol>
            </goles>
        </equipo>
        <equipo nombre="Betis">
            <entrenador>Pellegrini</entrenador>
            <goles>
                <gol min="45">Nabil Fekir</gol>
                <gol>Emerson Royal</gol>
            </goles>
        </equipo>
        <resultado>1-2</resultado>
        <estadio>La Cerámica</estadio>
        <fecha>2021-02-14</fecha>
    </partido>
    <partido>
        <equipo nombre="Getafe"/>
        <equipo nombre="Real Sociedad">
            <goles>
                <gol min="30">Alexander Isak</gol>
            </goles>
        </equipo>
        <resultado>0-1</resultado>
        <estadio>Coliseum Alfonso Pérez</estadio>
        <fecha>2021-02-14</fecha>
        <espectadores>0</espectadores>
    </partido>
    <quiniela>
        <combinacion>11222</combinacion>
        <recaudacion>3801225.50</recaudacion>
    </quiniela>
</jornada>

And here its my XSD:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="jornada" type="TipoJornada" />
    <xs:complexType name="TipoJornada">
        <xs:sequence>
            <xs:element name="partido" type="TipoPartido" maxOccurs="unbounded" />
            <xs:element name="quiniela" type="TipoQuiniela" />
        </xs:sequence>
        <xs:attribute name="num" type="xs:integer" />
    </xs:complexType>
    <xs:complexType name="TipoPartido">
        <xs:sequence>
            <xs:element name="equipo" type="TipoEquipo" maxOccurs="unbounded" minOccurs="0"/>
            <xs:element name="resultado" type="xs:string" />
            <xs:element name="estadio" type="xs:string" />
            <xs:element name="fecha" type="xs:date" />
            <xs:element name="espectadores" type="xs:integer"  minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TipoEquipo">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:sequence>
                    <xs:element name="goles" type="TipoGoles" minOccurs="0"/>
                    <xs:element name="entrenador" type="xs:string" minOccurs="0" />
                </xs:sequence>
            <xs:attribute name="nombre" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="TipoGoles">
        <xs:sequence>
            <xs:element name="gol" type="TipoGol" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TipoGol">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="min" type="xs:integer" />
                <xs:attribute name="penalti" type="xs:boolean" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="TipoQuiniela">
        <xs:sequence>
            <xs:element name="combinacion" type="xs:integer" />
            <xs:element name="recaudacion" type="xs:decimal" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>```
kjhughes
  • 106,133
  • 27
  • 181
  • 240
Ozgewn
  • 45
  • 1
  • 5
  • Your schema says that TipoEquipo is a complex type having *simple content* (= text content + attributes) but then it says that it has *complex content* (a sequence of elements). – lfurini Feb 18 '21 at 13:43
  • 1
    @lfurini Thanks for answering, i do understand what u say, and its true, but I wonder how should I write it if I want it to work? I'm sorry, I'm kinda new into xsd – Ozgewn Feb 18 '21 at 13:48
  • The element equipo has a _mixed content_ (both text and elements); you can see an example in [this question](https://stackoverflow.com/q/24346513/4453460). – lfurini Feb 18 '21 at 14:03
  • 1
    It did work, thanks you so much!! – Ozgewn Feb 18 '21 at 14:11

0 Answers0