title: Two xsd:id and xsd:idref - XSL:SCHEMA
body: <p>i need to do a schema with one tag (A) with one attribute (A-Attr), another tag (B) with another attribute (B-Attr) and a third tag (C) with two attributes (A-Attr and B-Attr).</p>
  
  <p>I don't know what i'm doing wrong. I think it might be related with id and idref but i don't know how to solve it.</p>
  
  <p>
  </p>
  
  <pre><code>&lt;xsd:element name="students"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;!-- Elemento que contendrá los alumnos, solo puede haber 1 --&gt;
              &lt;xsd:element maxOccurs="1" ref="students"/&gt; 
              &lt;!-- Elemento que contendrá las asignaturas, solo puede haber 1 --&gt;
              &lt;xsd:element maxOccurs="1" ref="cursos"/&gt;
              &lt;!-- Elemento que contendrá las notas, solo puede haber 1 --&gt;  
              &lt;xsd:element maxOccurs="1" ref="grades"/&gt;
          &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  &lt;!-- Todo lo relacionado con alumnos, el elemento alumnos tendrá los elementos alumno que hagan falta--&gt;
  &lt;xsd:element name="students"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element maxOccurs="unbounded" ref="student"/&gt;
          &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  &lt;!-- El elemento alumno tiene 4 elementos y un atributo con el codigo, que sera la clave primaria --&gt;
  &lt;xsd:element name="student"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element maxOccurs="1" ref="namelastname"/&gt;
              &lt;xsd:element maxOccurs="1" ref="adress"/&gt;
              &lt;xsd:element maxOccurs="1" ref="number"/&gt;
              &lt;xsd:element maxOccurs="1" ref="tel"/&gt;
          &lt;/xsd:sequence&gt;
          &lt;xsd:simpleContent&gt;
              &lt;xsd:extension base="xs:string"&gt;
                  &lt;xsd:attribute name="cod_student" use="required" type="xs:ID"&gt;
                      &lt;xsd:restriction base="xs:string"&gt;
                          &lt;xsd:pattern value="[a-z][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"/&gt;
                      &lt;/xsd:restriction&gt;
                  &lt;/xsd:attribute&gt;
              &lt;/xsd:extension&gt;
          &lt;/xsd:simpleContent&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  
  &lt;xsd:element name="namelastname" type="xs:string"/&gt;
  &lt;xsd:element name="adress" type="xs:string"/&gt;
  &lt;xsd:element name="number" type="xs:string"/&gt;
  &lt;xsd:element name="tel" type="xs:string"/&gt;
  
  &lt;xsd:element name="cursos"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element maxOccurs="unbounded" ref="curso"/&gt;
          &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  
  &lt;xsd:element name="curso"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element maxOccurs="1" ref="name"/&gt;
          &lt;/xsd:sequence&gt;
          &lt;xsd:simpleContent&gt;
              &lt;xsd:extension base="xs:string"&gt;
                  &lt;xsd:attribute name="cod_asig" use="required" type="xs:ID"&gt;
                      &lt;xsd:restriction base="xs:string"&gt;
                          &lt;xsd:pattern value="[a-z][0-9]"/&gt;
                      &lt;/xsd:restriction&gt;
                  &lt;/xsd:attribute&gt;
              &lt;/xsd:extension&gt;
          &lt;/xsd:simpleContent&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  
  &lt;xsd:element name="name" type="xs:string"/&gt;
  
  &lt;xsd:element name="grades"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element maxOccurs="unbounded" ref="grade"/&gt;
          &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  
  &lt;xsd:element name="grade"&gt;
      &lt;xsd:complexType&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element maxOccurs="1" ref="points"/&gt;
          &lt;/xsd:sequence&gt;
          &lt;xsd:simpleContent&gt;
              &lt;xsd:extension base="xs:string"&gt;
                  &lt;xsd:attribute name="stud" use="required" type="xs:IDREF"/&gt;
                  &lt;xsd:attribute name="grad" use="required" type="xs:IDREF"/&gt;
              &lt;/xsd:extension&gt;
          &lt;/xsd:simpleContent&gt;
      &lt;/xsd:complexType&gt;
  &lt;/xsd:element&gt;
  
  &lt;xsd:element name="points" type="xs:string"/&gt;
  </code></pre>
  
  <p></p>