DTD-IN

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE acta [
<!ELEMENT acta (fecha, modalidad, curso, tutor, tutor?, (modulo| (modulo, modulo) |(modulo, modulo, modulo)|(modulo, modulo, modulo, modulo)), normativa)>
<!-- el segundo elemento tutor es opcional: con ? indicamos que puede aparecer o no-->

<!ATTLIST acta id CDATA  #FIXED "0144">
<!ATTLIST acta eval (1|2|3|FINAL|PE) #REQUIRED>
<!ATTLIST acta ciclo (ASIR|DAM|DAW) #REQUIRED>
<!ATTLIST acta tipo (presencial|telematica) #IMPLIED>

<!-- También es posible hacerlo de este modo
<!ATTLIST acta
  ciclo (ASIR|DAM|DAW) #REQUIRED
  eval (1|2|3|FINAL|PE) #REQUIRED
  tipo (presencial|telematica) #REQUIRED
  id CDATA #FIXED "0144">
 -->

<!ELEMENT fecha (#PCDATA)>
<!ELEMENT modalidad (#PCDATA)> <!-- no podemos restringir valores en un elemento como lo haríamos en un atributo -->
<!ELEMENT curso (#PCDATA)>

<!ENTITY % datospersonales "((nombre, apellido1, apellido2, dni) | (apellido1, apellido2, nombre, dni))">


<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellido1 (#PCDATA)>
<!ELEMENT apellido2 (#PCDATA)>
<!ELEMENT dni (#PCDATA)>

<!-- Las entidades por parámetro no se pueden usar en las DTD internas así que la comentamos y sustituimos su uso por su contenido en los elementos: tutor, profesor y alumno
<!ENTITY % datospersonales "((nombre, apellido1, apellido2, dni) | (apellido1, apellido2, nombre, dni))">
-->

<!ELEMENT tutor  ((nombre, apellido1, apellido2, dni) | (apellido1, apellido2, nombre, dni))>

<!ELEMENT modulo (profesor, alumno*)>
<!ATTLIST modulo codigo ID #REQUIRED>
<!ELEMENT profesor ((nombre, apellido1, apellido2, dni) | (apellido1, apellido2, nombre, dni))>
<!ATTLIST profesor mod IDREF  #REQUIRED>

<!ELEMENT alumno (((nombre, apellido1, apellido2, dni) | (apellido1, apellido2, nombre, dni)), cualificacion)>
<!ELEMENT cualificacion (#PCDATA)>

<!ELEMENT normativa EMPTY>
<!ATTLIST normativa ref NMTOKEN #REQUIRED>
]>



<acta ciclo="ASIR" eval="1" tipo="telematica" id="0144">
    <fecha>2020-12-22</fecha>
    <modalidad>presencial</modalidad>
    <curso>2020-2021</curso>
    <tutor>
        <apellido1>Foz</apellido1>
        <apellido2>Fernández</apellido2>
        <nombre>Filomena</nombre>
        <dni>55555555-F</dni>
    </tutor>
    <tutor>
        <nombre>Jacinta</nombre>
        <apellido1>Jáuregui</apellido1>
        <apellido2>Juncal</apellido2>
        <dni>55555556-J</dni>
    </tutor>
    <modulo codigo="C1">
        <profesor mod="C1">
            <nombre>Luis</nombre>
            <apellido1>Loureiro</apellido1>
            <apellido2>Lápiz</apellido2>
            <dni>55555556-L</dni>
        </profesor>
        <alumno>
            <nombre>María</nombre>
            <apellido1>Mouriz</apellido1>
            <apellido2>Muñoz</apellido2>
            <dni>55555557-M</dni>
            <cualificacion>5</cualificacion>
        </alumno>
        <alumno>
            <nombre>Ana</nombre>
            <apellido1>Antón</apellido1>
            <apellido2>Arias</apellido2>
            <dni>55555557-A</dni>
            <cualificacion>4</cualificacion>
        </alumno>
    </modulo>
    <modulo codigo="C2">
        <profesor mod="C2">
            <apellido1>Borrás</apellido1>
            <apellido2>Brión</apellido2>
            <nombre>Bernando</nombre>
            <dni>55555556-B</dni>
        </profesor>
        <!-- No hay alumnos en este módulo -->
    </modulo>
    <modulo codigo="C3">
        <profesor mod="C3">
            <nombre>Carmen</nombre>
            <apellido1>Couce</apellido1>
            <apellido2>Cruz</apellido2>
            <dni>55555556-C</dni>
        </profesor>
    </modulo>
    <normativa ref="1:-_2ab" />
</acta>

Comentarios