Академический Документы
Профессиональный Документы
Культура Документы
<alumno dni="12345678A"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="alumno.xsd">
<nombre>Juan Garcia</nombre>
<direccion>
<calle>Avenida de la Fuente</calle>
<numero>6</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924555555</telefono>
<telefono>658741236</telefono>
</alumno>
<alumnos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="alumnos.xsd">
<alumno dni="11111111A">
<nombre>Juan Andrs</nombre>
<direccion>
<calle>Avenida de la Fuente</calle>
<numero>6</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924555555</telefono>
</alumno>
<alumno dni="22222222B">
<nombre>Jose Sanchez</nombre>
<direccion>
<calle>Calle Ancha</calle>
<numero>3</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<direccion>
<calle>Calle Mayor</calle>
<numero>33</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924550000</telefono>
</alumno>
</alumnos>
<heladeria xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="heladeria.xsd">
<helado fabricacin="2015-01-30">
<chocolate>250</chocolate>
<turron>300</turron>
</helado>
<helado fabricacin="2015-01-30">
<fresa>500</fresa>
<vainilla>200</vainilla>
</helado>
</heladeria>
Como primer elemento de helado podemos elegir, o bien chocolate, o bien fresa (pero no los dos
al mismo tiempo). Estos elementos almacenarn la cantidad en gramos (como un nmero entero entre 0 y
1000).
Como segundo elemento de helado se podr elegir uno de los
siguientes vainilla, turrno nata. Estos elementos almacenarn la cantidad en gramos (como un nmero
entero entre 0 y 1000).
El atributo fabricacin indicar la fecha en la que se fabric el mismo mediante el tipo de dato
fecha.
Disea el esquema XSD para el siguiente archivo XML con las siguientes consideraciones:
<heladeria xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="heladeria.xsd">
<helado>
<fresa />
<chocolate />
</helado>
<helado>
<vainilla />
<chocolate />
</helado>
</heladeria>
<faq>
<info>
<email>Fer@yahoo.es </email>
<version>1.0</version>
<fecha>1999-05-01</fecha>
</info>
<part>
<q>
</q>
<q>
</q>
</part>
</faq>
El elemento versin ser una plantilla que permita nmeros seguidos de un punto y seguido de
ms nmeros.
El elemento fecha ser de tipo fecha.
El elemento faq est compuesto por solo un elemento info y por uno o ms elementos part.
El elemento info est compuesto por un titulo, un autor, y puede tener o no email, versin yfecha.
El elemento part puede tener uno o ms elementos q.
El elemento q est compuesto por los elementos qtext y a que son obligatorios.
Disea el esquema XSD para el siguiente archivo XML y las siguientes consideraciones:
<libreria>
<codigo>1263</codigo>
<telefono>983555555</telefono>
<propietario>
<nombre>Juanito</nombre>
<telefono>656222111</telefono>
</propietario>
<libro>
<formato>Rstica</formato>
<publicacion>1967</publicacion>
<precio>23,5</precio>
</libro>
</libreria>
<pagos>
<nombre>Javier Toledano</nombre>
<fechaNacimiento>1979-02-04</fechaNacimiento>
<hora>23:55:15</hora>
<hora>23:55:15</hora>
<precio>123.56</precio>
<cantidad>678</cantidad>
<pagado>true</pagado>
</pagos>
El elemento nombre puede aparecer como mximo 3 veces y su valor por defecto es "A".
El elemento hora puede aparecer un numero infinito de veces.
El valor por defecto de pagado es false.
La cantidad es fija y es siempre 678.
<discos>
<grupo nom="muse">
<nombre>MUSE</nombre>
<miembro>Matthew Bellamy</miembro>
<miembro>Dominic Howard</miembro>
<miembro>Chris Wolstenholme</miembro>
<nacionalidad>Alemania</nacionalidad>
<web>www.ponprecioamimusica.org/muse</web>
</grupo>
<grupo nom="feeder">
<nombre>FEEDER</nombre>
<miembro>Grant Nicholas</miembro>
<miembro>Taka Hirose</miembro>
<localidad>tampoco existe</localidad>
</grupo>
<grupo nom="nvnud">
<miembro>Marta</miembro>
<miembro>Ramon</miembro>
<miembro>Pedro</miembro>
</grupo>
<disco precio=12.80>
<interprete nom="muse"/>
<titulo>Showbiz</titulo>
<discografica>Sony</discografica>
<anio>2000</anio>
<stock>20</stock>
</disco>
<disco precio=19.90>
<interprete nom="feeder"/>
<titulo>Echo Park</titulo>
<discografica>Sony</discografica>
<anio>1980</anio>
<stock>5</stock>
</disco>
<disco precio=15.50>
<interprete nom="muse"/>
<titulo>Origin of symmetry</titulo>
<discografica>SIRE</discografica>
<anio mes=enero>2007</anio>
<stock>20</stock>
</disco>
<disco precio=13.20>
<interprete nom="feeder"/>
<titulo>Comfort In Sound</titulo>
<anio>2010</anio>
<stock>27</stock>
</disco>
<disco precio=4.90>
<interprete nom="nvnud"/>
<anio>2011</anio>
<stock>200</stock>
</disco>
</discos>
Ejercicio2
<alumnos xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:noNamespaceSchemaLocation="alumnos2.xsd">
<alumno dni="11111111A">
<nombre>Juan Andrs</nombre>
<direccion>
<calle>Avenida de la Fuente</calle>
<numero>6</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924555555</telefono>
</alumno>
<alumno dni="22222222B">
<nombre>Jose Sanchez</nombre>
<direccion>
<calle>Calle Ancha</calle>
<numero>3</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<direccion>
<calle>Calle Mayor</calle>
<numero>33</numero>
<ciudad>Zafra</ciudad>
<provincia>Badajoz</provincia>
</direccion>
<telefono>924550000</telefono>
</alumno>
</alumnos>
<faq xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:noNamespaceSchemaLocation="faq.xsd">
<info>
<titulo>WINDOWS98? SOLO SI ME OBLIGAN!</titulo>
<autor>Fernando Damin Lorenzo Garca</autor>
<email>Fer@yahoo.es</email>
<version>1.0</version>
<fecha>1999-05-01</fecha>
</info>
<part>
<q>
<qtext>Por qu tengo que instalar W95?</qtext>
<a>A mi tambin me parece una buena pregunta.</a>
</q>
<q>
<qtext>Y de que me vale?</qtext>
<a>Otra ingeniosa pregunta.</a>
</q>
</part>
</faq>
Solucin:
"aeropuerto.xsd"
DETALLE FACTURA:
IMPORTE: 86.12
Solucin:
"factura.xsd"
<xs:element name="factura">
<xs:complexType>
<xs:all>
<xs:element name="datos-emisor">
<xs:complexType>
<xs:sequence>
<xs:group ref="datosEmpresa"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="datos-cliente">
<xs:complexType>
<xs:sequence>
<xs:group ref="datosEmpresa"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="detalle-factura">
<xs:complexType>
<xs:sequence>
<xs:element name="lnea" maxOccurs="15">
<xs:complexType>
<xs:sequence>
<xs:group ref="datosLnea"/>
</xs:sequence>
<xs:attributeGroup ref="atributosLnea"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="importe" type="tipoPrecio"
use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attributeGroup ref="atributosFactura"/>
</xs:complexType>
</xs:element>
<xs:group name="datosEmpresa">
<xs:sequence>
<xs:element name="nombre" type="tipoTexto"/>
<xs:element name="cif">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d{8}-[A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="telfono">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d{9}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:group name="datosLnea">
<xs:sequence>
<xs:element name="descripcin" type="tipoTexto"/>
<xs:element name="cantidad"
type="xs:positiveInteger"/>
<xs:element name="oferta" minOccurs="0"/>
<xs:element name="pvp" type="tipoPrecio"/>
</xs:sequence>
</xs:group>
<xs:attributeGroup name="atributosFactura">
<xs:attribute name="nmero" type="xs:positiveInteger"
use="required"/>
<xs:attribute name="fecha" type="xs:date"
use="required"/>
<xs:attribute name="moneda" fixed="Euro"/>
</xs:attributeGroup>
<xs:attributeGroup name="atributosLnea">
<xs:attribute name="cdigo-artculo" type="xs:ID"
use="required"/>
<xs:attribute name="tipo" type="tipoArtculo"/>
</xs:attributeGroup>
<xs:simpleType name="tipoTexto">
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="tipoArtculo">
<xs:restriction base="xs:string">
<xs:enumeration value="Libro"/>
<xs:enumeration value="DVD"/>
<xs:enumeration value="Varios"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="tipoPrecio">
<xs:restriction base="xs:decimal">
<xs:minExclusive value="0"/>
<xs:maxInclusive value="999"/>
<xs:totalDigits value="5"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Si para representar la siguiente informacin ficticia:
USUARIOS:
EMPLEADOS:
E4&Marta&Vera (Ninguna)
Gil&mvera@yajoo.es&Marketing
Solucin:
"registro.xsd"
<xs:element name="registro">
<xs:complexType>
<xs:sequence>
<xs:group ref="personas"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group name="personas">
<xs:sequence>
<xs:element name="usuario" minOccurs="0"
maxOccurs="unbounded" type="tipoPersona"/>
<xs:element name="empleado" minOccurs="0"
maxOccurs="unbounded" type="tipoPersonaAmpliado"/>
</xs:sequence>
</xs:group>
<xs:complexType name="tipoPersonaAmpliado">
<xs:complexContent>
<xs:extension base="tipoPersona">
<xs:sequence>
<xs:element name="departamento">
<xs:complexType>
<xs:sequence>
<xs:group ref="departamentosEmpresa"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="tipoPersona">
<xs:sequence>
<xs:group ref="datosPersona"/>
</xs:sequence>
<xs:attribute name="identificador" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[UE]\d{1,5}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:group name="datosPersona">
<xs:sequence>
<xs:element name="apellidos-y-nombre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z ]{1,30},[a-zA-Z
]{1,20}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="email">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]{1,15}@[a-z]{1,25}[.][a-
z]{2,4}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="conexiones">
<xs:complexType>
<xs:sequence>
<xs:element name="conexin" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:positiveInteger">
<xs:attributeGroup
ref="atributosConexion"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:attributeGroup name="atributosConexion">
<xs:attribute name="fecha" type="xs:date"
use="required"/>
<xs:attribute name="hora" type="xs:time"
use="required"/>
</xs:attributeGroup>
<xs:group name="departamentosEmpresa">
<xs:choice>
<xs:element name="administracin"/>
<xs:element name="informtica"/>
<xs:element name="marketing"/>
</xs:choice>
</xs:group>
</xs:schema>