Está en la página 1de 7

IES Leopoldo Queipo Departamento de Informática y

Melilla Comunicaciones

Curso: 2022-2023 Ciclo: DESARROLLO APLICACIONES WEB


Fecha: Módulo: LMGSI
Tipo: Profesor: Mustafa

Apellidos: assadki Nota:


Nombre: mohamed

Escribe un XML Schema para estos ficheros, eligiendo los tipos de datos más apropiados y

teniendo en cuenta que:

El peso es un número positivo y no puede tener más de dos decimales.

Puede haber más de un tamaño.

El atributo tipo sólo puede tomar los valores ‘matricial’, ‘láser’ y ‘tinta’. Es

obligatorio.

El atributo numSerie es obligatorio y hace de identificador.

El cartucho está formado por una C mayúscula, un guión, tres números y una o dos letras

mayúsculas.

Todos los elementos son obligatorios, menos enred.

El elemento enred es opcional. De estar presente, es un elemento vacío.

El atributo compra, opcional, guarda el año de compra. Es un número entero positivo.

En cada fichero hay datos para una o más impresoras.

Pagina 1 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com


IES Leopoldo Queipo Departamento de Informática y
Melilla Comunicaciones

El elemento padre es<xs:schema> yde be contener declaraciones paratodos los elementos que

se encuentran en el xml.El elemento hijo es <xs:element>.En xml schema no tenemos forma

de definir el elemento raíz de unaforma especial, lo indicaremos con <xs:element

name=”root”> , al quedefiniremos de tipo complejo si alberga más elementos en su

interior y laetiqueta xs:sequence para ir añadiendo los diferentes elementos que loforman

y sus restricciones. Así nos quedará un xml schema anidado.Los atributos han de

declararse después de la etiqueta sequence quedefine los elementos del root.El XML schema

nos va a permitir realizar validaciones avanzadas

Este es el xml valido contra el documento10xsd:

<?xmlversion=”1.0”encoding=”utf-8”?>

<impresoras xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance"xsi:noNamespaceSchemaLocation="Documento1.xsd"> <!--enlace conruta relativa para

validarlo contra el xsd-->

<impresora numSerie="i245" tipo="láser" compra="2010">

<marca>Epson</marca>

<modelo>EPL300</modelo>

<peso>4.52</peso>

<tamaño>A4</tamaño>

Pagina 2 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com


IES Leopoldo Queipo Departamento de Informática y
Melilla Comunicaciones

<tamaño>A5</tamaño>

<cartucho>C-123BV</cartucho>

<enred/>

</impresora>

<impresora numSerie="i246" tipo="matricial">

<marca>HP</marca>

<modelo>LaserJet 2410</modelo>

<peso>3.2</peso>

<tamaño>A4</tamaño>

<cartucho>C-456P</cartucho>

</impresora>

</impresoras>

Ahora el XML Schema llamado documento1

He añadido comentarios de este tipo:<!-- --> aunque son preferibles loscomentarios

realizados de esta manera ya que son procesables y se pueden estructurar:

<xs:anotation>

<xs:documentation>

Define una lista de impresoras.Pilar Alonso Suela.Tarea 04.1 DAMEL

</xs:documentation>

Pagina 3 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com


IES Leopoldo Queipo Departamento de Informática y
Melilla Comunicaciones

</xs:anotation>

<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified">

<xs:element name="impresoras">

<xs:complexType>

<xs:sequence>

<!--aquí hacemos referencia al elemento impresora, las referenciasson una manera de hacer

el xml schema más legible.Habrá datos parauna o más impresoras-->

<xs:element ref="impresora" minOccurs="1"maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="impresora">

<xs:complexType>

<xs:sequence>

<xs:element name="marca" type="xs:string" minOccurs="1"maxOccurs="unbounded"/>

<xs:element name="modelo" type="xs:string"minOccurs="1"maxOccurs="unbounded"/>

<xs:element name="peso" minOccurs="1"maxOccurs="unbounded">

<!--el peso debe ser un número positivo y que no tenga más de dosdecimales para ello debe

Pagina 4 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com


IES Leopoldo Queipo Departamento de Informática y
Melilla Comunicaciones

declararse dentro de xs:restriction-->

<xs:simpleType> <!--definimos el valor de tipo simple-->

<xs:restriction base="xs:decimal"><!--base nos indica el tipo dedato a partir del cual se

hace la restricción,en este caso debe de serdecimal-->

<xs:fractionDigits value="2"/> <!--Utilizo fractionDigits paraespecificar el número de

decimales,ya que total digits aunque se puedeaplicar en decimales especifica el número de

cifras total-->

<xs:minInclusive value="1"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

<!--puede haber más de un tamaño-->

<xs:element name="tamaño" type="xs:string" minOccurs="1"maxOccurs="unbounded"/><!--

definimos un número máximo ilimitadode tamaños, con una ocurrencia mínima de 1-->

<xs:element name="cartucho"minOccurs="1"maxOccurs="unbounded" >

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="[C][\-][0-9][0-9][0-9][A-Z]{1,2}"/>

Pagina 5 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com


IES Leopoldo Queipo Departamento de Informática y
Melilla Comunicaciones

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="enred" type="xs:string" default=""minOccurs="0" />

</xs:sequence>

<!--attributos -->

<!--el atributo numero de serie debe ser obligatorio y además hacerde identificador de

impresora-->

<xs:attribute name="numSerie" use="required">

<xs:simpleType>

<xs:restriction base="xs:ID"><!--Establecemos la restricion de tipo ID-->

</xs:restriction>

</xs:simpleType>

</xs:attribute>

<!--el atributo tipo debe ser obligatorio y además debe solo contemplarlos

valores:matricial,laser y tinta-->

<xs:attribute name="tipo" use="required">

Pagina 6 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com


IES Leopoldo Queipo Departamento de Informática y
Melilla Comunicaciones

<xs:simpleType><!--definimos el tipo simple-->

<xs:restriction base="xs:string"><!--el tipo de dato al cual se le hace larestricción-->

<xs:enumeration value="matricial"/>

<!--dentro de un enumerationpondremos los diferentes valores--><xs:enumeration

value="láser"/>

<xs:enumeration value="tinta"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

<xs:attribute name="compra" type="xs:positiveInteger"use="optional"/><!--el atributo

compra es opcional y es un enteropositivo, por defecto si no se especifica nada el

atributo seráopcional,aunque yo haya preferido especificarlo-->

</xs:complexType>

</xs:element>

</xs:schema>

Pagina 7 de 7 fp.iesleopoldoqueipo.com fpic.iesleopoldoqueipo.com

También podría gustarte