Untitled
Untitled
Untitled
1. Escribe varios documentos XML (bien formados) que estén descritos por la
siguiente DTD: person2.dtd y que lo vincule de manera correcta (sean válidos).
(person.dtd)
DTD
<!ELEMENT persona2 (nombre, apellido+, edad, enActivo?)>
<!ATTLIST persona2 dni ID #REQUIRED estadoCivil (Soltero | Casado |
Divorciado) #IMPLIED >
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellido (#PCDATA)>
<!ELEMENT edad (#PCDATA)>
<!ELEMENT enActivo (#PCDATA)>
Resuelto XML:
Resuelto:
DTD
XML
- Para cada alumno se almacenará nombre, apellidos, domicilio y teléfono (teniendo en cuenta
que puede tener uno o más).
- Incluir el atributo “cod_alumnos” que identifique a los alumnos de forma única
- se debe indicar si el alumno está o no becado.
- Se desea conocer si el alumno tiene familiares estudiando en el centrum esto se referenciará
con el código de alumno del familiar.
- Cada alumno puede tener uno o varios números de teléfono y en cada número almacenado se
guardará, mediante el atributo, si el alumno tiene permitidas las comunicaciones de notas a
través de teléfono. Por defecto este valor será “NO”
- Se permite añadir opcionalmente observaciones sobre los alumnos. Creando como ANY para
permitir incluir cualquier información de tipo texto junto con otros elementos del esquema.
- se almacenará las notas del último curso mediante los elementos de evaluación y calificación,
que aparecerán en ese orden y varias veces.
Resultado:
DTD:
<alumnos>
<alumno cod_alumno = "A" becado = "SI">
<nombre></nombre>
<apellidos></apellidos>
<domicilio></domicilio>
<telefono comunicaciones = "NO">
<telefono1></telefono1>
<telefono2></telefono2>
</telefono>
<!--
<familiares>
<familiar cod_familiar = 145></familiar>
</familiares>
<observaciones></observaciones>
<notas>
<evaluacion></evaluacion>
<calificacion></calificacion>
</notas>
-->
</alumno>
</alumnos>
</cuento>
DTD
<!ELEMENT etiqueta EMPTY) > <!-- Ponemos EMPTY porque son etiquetas vacías-->
<!ATTLIST etiqueta nombre CDATA #REQUIRED>
]>
ESQUEMA XDS: XMLSCHEMA
PRIMERAS LÍNEAS;
- Elemento raíz
<xs:schema>
xmlns:xs =”http://www.w3.org/2001/XMLSchema”>
COMENTARIOS:
xs:appinfo: Pasar información extra a las aplicaciones que hagan uso del esquema
<!-- →
- ELEMENTO:
<xs:complexType>
</xs:complexType>
</xs:element>
<biblioteca>
<anio>2001</anio>
<editorial>UA Prensa</editorial>
</libro>
</biblioteca>
DTD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:complexType>
<xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
EJERCICIO 3 países:
Documento XML
<españa>
<población></población>
<continente></continente>
<capital></capital>
<coordenadas>
<latitud></latitud>
<longitud></longitud>
</coordenadas>
<fotografías>
<nombre></nombre>
<descripcion></descripcion>
<url></url>
</fotografías>
</españa>
Crear un fichero XSD (XML Schema) que permita validar el XML del ejercicio 1. El
nombre del fichero tiene que ser el nombre del país con extensión XSD
(francia.xsd)
- DOCUMENTO XS:SCHEMA (XSD)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="españa">
<xs:complexType>
<xs:sequence>
<xs:element name="coordenadas">
<xs:complexType>
<xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="fotografías">
<xs:complexType>
<xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Ejercicio2. - Se diseñará un modelo de documento (esquema XSD) para crear facturas en
XML con, al menos, los siguientes campos:
● Cliente (nombre, dirección, CIF, …)
● Número de factura
● Fecha
● Líneas de factura (diferentes conceptos que incluye la factura), consistentes en
concepto e importe.
● Subtotal: suma de los importes de las líneas de factura
● IVA
● Total
xs:schema
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="factura">
<xs:complexType>
<xs:sequence>
<xs:element name="cliente">
<xs:complexType>
<xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType>
<xs:sequence>
<xs:element name="concepto" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- XML A XSCHEMA con ALL
XML:
<lugar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="lugar.xsd">
<ciudad>
<pais>Italia</pais>
<nombre>Florencia</nombre>
</ciudad>
</lugar>
XS:SCHEMA:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="lugar">
<xs:complexType>
<xs:sequence>
<xs:element name="ciudad">
<xs:complexType>
<xs:all>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>