Biblioteca
XML Biblioteca
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE biblioteca SYSTEM "01.dtd">
<biblioteca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="01.xsd">
<libro id="l1" genero="Comedia" idioma="Español" formato="impreso">
<titulo>Titulo 1</titulo>
<autores>
<autor>
<nombre></nombre>
<apellido></apellido>
<nacionalidad></nacionalidad>
</autor>
</autores>
<año>2025</año>
</libro>
<libro id="l2" genero="Comedia" idioma="Español" formato="impreso">
<titulo>Titulo 1</titulo>
<autores>
<autor>
<nombre></nombre>
<apellido></apellido>
<nacionalidad></nacionalidad>
</autor>
</autores>
<año>2026</año>
</libro>
</biblioteca>
DTD Biblioteca
<!ELEMENT biblioteca (libro)+>
<!ATTLIST biblioteca xmlns:xsi CDATA #IMPLIED
xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
<!ELEMENT libro (titulo,autores,año)>
<!ELEMENT autores (autor+)>
<!ELEMENT autor (nombre,apellido,nacionalidad)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT genero (#PCDATA)>
<!ELEMENT año (#PCDATA)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellido (#PCDATA)>
<!ELEMENT nacionalidad (#PCDATA)>
<!ATTLIST libro id ID #REQUIRED>
<!ATTLIST libro genero CDATA #IMPLIED>
<!ATTLIST libro idioma CDATA #IMPLIED >
<!ATTLIST libro formato (impreso|digital) "impreso">
<!ATTLIST libro referencia IDREF #IMPLIED>
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 caracteres son 50
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="autores">
<xs:complexType>
<xs:sequence>
<xs:element name="autor" maxOccurs="unbounded">
<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ñol"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="año" type="xs:gYear"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required"/>
<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" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="impreso|digital"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="referencia" type="xs:IDREF" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>