UT4.1 Biblioteca

Biblioteca
XML Biblioteca
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE biblioteca SYSTEM "01.dtd">
<!-- XML Almacena Datos -->

<biblioteca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="01.xsd">

    <libro idLibro="l1" formato="digital" genero="Aventura">
        <titulo>Wigetta</titulo>
        <autores>
            <autor>
                <nombre> Samuel</nombre>
                <apellido> De Luque</apellido>
                <nacionalidad> Española</nacionalidad>
            </autor>
            <autor>
                <nombre> Guillermo</nombre>
                <apellido> Diaz</apellido>
                <nacionalidad> Española</nacionalidad>
            </autor>
        </autores>
        <año>2015</año>

    </libro>

    <libro idLibro="l2" genero="Autohumillacion">
        <titulo>El Libro Troll</titulo>
        <autores>
            <autor>
                <nombre> Ruben</nombre>
                <apellido> Doblas</apellido>
                <nacionalidad> Española</nacionalidad>
            </autor>
        </autores>
        <año>2014</año>

    </libro>

    <libro idLibro="l3" idioma="Koreano" genero="Restrospectivo">
        <titulo>Luna de Pluton</titulo>
        <autores>
            <autor>
                <nombre> Dross</nombre>
                <apellido> Xd</apellido>
                <nacionalidad> Venezolano</nacionalidad>
            </autor>
        </autores>
        <año>2016</año>


    </libro>

    <libro idLibro="l4" idioma="Koreano" refLibro="l3">
        <titulo>Luna de Jupiter</titulo>
        <autores>
            <autor>
                <nombre> Yo</nombre>
                <apellido> Mismo</apellido>
                <nacionalidad> Venezolano</nacionalidad>
            </autor>
        </autores>
        <año>2017</año>


    </libro>



</biblioteca>
DTD Biblioteca
<!ELEMENT biblioteca (libro)+>
<!ATTLIST biblioteca xmlns:xsi CDATA #REQUIRED
            xsi:noNamespaceSchemaLocation CDATA #REQUIRED>
        
<!ELEMENT libro (titulo, autores, año)>
<!ATTLIST libro idLibro ID #REQUIRED>
<!ATTLIST libro refLibro IDREFS #IMPLIED>
<!ATTLIST libro genero CDATA #IMPLIED>
<!ATTLIST libro idioma CDATA "Español">
<!ATTLIST libro formato (impreso | digital) "impreso">
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT año (#PCDATA)>
<!ELEMENT autores (autor)+>
<!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> Numero maxiomo de caracters en el titulo es 50</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="50"></xs:maxLength>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="autores">
                                <xs:complexType>
                                    <xs:choice maxOccurs="unbounded">
                                        <xs:element name="autor">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="nombre" type="xs:string"/>
                                                    <xs:element name="apellido" type="xs:string"/>
                                                    <xs:element name="nacionalidad" type="xs:string" default="España"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:choice>
                                </xs:complexType>
                            </xs:element>

                            <xs:element name="año" type="xs:gYear"/>

                        </xs:sequence>
                        <xs:attribute name="idLibro" type="xs:ID" use="required"/>
                        <xs:attribute name="refLibro" type="xs:IDREFS"/>
                        <xs:attribute name="genero" type="xs:string" use="optional"/>
                        <xs:attribute name="idioma" type="xs:string" use="optional" default="Español"/>
                        <xs:attribute name="formato" default="impreso">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="impreso"/>
                                    <xs:enumeration value="digital"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>

                </xs:element>
            </xs:sequence>
        </xs:complexType>

    </xs:element>
</xs:schema>