UT4.1 Biblioteca

Biblioteca
XML Biblioteca
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE biblioteca SYSTEM '01.dtd'>
<!-- entidad interna,extrrna no fuenciona  entity,system para dtd externo-->
<!-- <!ENTITY libro1 'titulo del libro 1']> -->
<!--en
libro esto-> <titulo>&libro1;</titulo> -->
<!-- 
dtd interno:
<!DOCTYPE biblioteca [
    <!ELEMENT biblioteca (libro)+>
    <!ELEMENT libro (idlibro,isbn,titulo,genero*,volumen+,autores?)>
    <!ELEMENT autores (autor+)>
    <!ELEMENT idlibro (#PCDATA)>
    <!ELEMENT isbn (#PCDATA)>
    <!ELEMENT titulo (#PCDATA)>
    <!ELEMENT genero (#PCDATA)>
    <!ELEMENT volumen (#PCDATA)>
    <!ELEMENT autor (#PCDATA)>
]> -->
<!-- Información de biblioteca -->
<biblioteca>
    <libro id="l1" genero='comedia' idioma="Inglés" formato="digital">
        <titulo>Titulo libro 1</titulo>
        <autores>
            <autor>
                <nombre>a</nombre>
                <apellido>b</apellido>
                <nacionalidad>español</nacionalidad>
            </autor>
            <autor>
                <nombre>f</nombre>
                <apellido>g</apellido>
                <nacionalidad>español</nacionalidad>
            </autor>
        </autores>
        <anyo>2026</anyo>
    </libro>

    <libro id="l2" referencia="l1">
        <titulo>Titulo libro 2</titulo>
        <autores>
            <autor>
                <nombre>h</nombre>
                <apellido>i</apellido>
                <nacionalidad>Alemán</nacionalidad>
            </autor>
        </autores>
        <anyo>2000</anyo>
    </libro>
</biblioteca>
DTD Biblioteca
<!-- Elemento raíz biblioteca que contiene uno o más libros -->
<!ELEMENT biblioteca (libro+)>
<!-- Cada libro contiene titulo, autores, anyo y genero -->
<!ELEMENT libro (titulo, autores, anyo)>
<!-- Atributo id obligatorio de tipo ID -->
<!ATTLIST libro id ID #REQUIRED>
<!-- Atributo genero opcional -->
<!ATTLIST libro genero CDATA #IMPLIED>
<!-- Atributo idioma con valor por defecto -->
<!ATTLIST libro idioma CDATA "Español">
<!-- Atributo formato con enumeración -->
<!ATTLIST libro formato (impreso | digital) "impreso">
<!-- Atributo referencia opcional que puede referenciar varios libros -->
<!ATTLIST libro referencia IDREF #IMPLIED>
<!-- Elemento titulo con texto -->
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT autores (autor+)>
<!-- Elemento anyo con texto -->
<!ELEMENT anyo (#PCDATA)>
<!-- Cada autor contiene nombre, apellido y nacionalidad -->
<!ELEMENT autor (nombre, apellido, nacionalidad)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellido (#PCDATA)>
<!ELEMENT nacionalidad (#PCDATA)>
XSD Biblioteca
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="biblioteca">
      <xs:complexType>
        <xs:sequence>
            <xs:element name="libro" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="titulo">
                            <xs:annotation>
                                <xs:documentation>
                                    El número máximo de carácteres es 50
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
      </xs:complexType>  
    </xs:element>
</xs:schema>