我需要用一个标签 (A) 和一个属性 (A-Attr)、另一个标签 (B) 和另一个属性 (B-Attr) 和第三个标签 (C) 和两个属性 (A-Attr 和 B) 做一个模式-属性)。
我不知道我做错了什么。我认为它可能与 id 和 idref 有关,但我不知道如何解决它。
<xsd:element name="students">
<xsd:complexType>
<xsd:sequence>
<!-- Elemento que contendrá los alumnos, solo puede haber 1 -->
<xsd:element maxOccurs="1" ref="students"/>
<!-- Elemento que contendrá las asignaturas, solo puede haber 1 -->
<xsd:element maxOccurs="1" ref="cursos"/>
<!-- Elemento que contendrá las notas, solo puede haber 1 -->
<xsd:element maxOccurs="1" ref="grades"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Todo lo relacionado con alumnos, el elemento alumnos tendrá los elementos alumno que hagan falta-->
<xsd:element name="students">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="student"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- El elemento alumno tiene 4 elementos y un atributo con el codigo, que sera la clave primaria -->
<xsd:element name="student">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" ref="namelastname"/>
<xsd:element maxOccurs="1" ref="adress"/>
<xsd:element maxOccurs="1" ref="number"/>
<xsd:element maxOccurs="1" ref="tel"/>
</xsd:sequence>
<xsd:simpleContent>
<xsd:extension base="xs:string">
<xsd:attribute name="cod_student" use="required" type="xs:ID">
<xsd:restriction base="xs:string">
<xsd:pattern value="[a-z][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"/>
</xsd:restriction>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="namelastname" type="xs:string"/>
<xsd:element name="adress" type="xs:string"/>
<xsd:element name="number" type="xs:string"/>
<xsd:element name="tel" type="xs:string"/>
<xsd:element name="cursos">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="curso"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="curso">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" ref="name"/>
</xsd:sequence>
<xsd:simpleContent>
<xsd:extension base="xs:string">
<xsd:attribute name="cod_asig" use="required" type="xs:ID">
<xsd:restriction base="xs:string">
<xsd:pattern value="[a-z][0-9]"/>
</xsd:restriction>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="name" type="xs:string"/>
<xsd:element name="grades">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="grade"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="grade">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" ref="points"/>
</xsd:sequence>
<xsd:simpleContent>
<xsd:extension base="xs:string">
<xsd:attribute name="stud" use="required" type="xs:IDREF"/>
<xsd:attribute name="grad" use="required" type="xs:IDREF"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="points" type="xs:string"/>