SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 1
EJERCICIO RESUELTO - Personal de departamentos (XSD - XML Schema Definition)
Si para representar la siguiente información ficticia:
INFORMACIÓN DEL PERSONAL DE LOS DEPARTAMENTOS A FECHA 20-10-2013
NOMBRE: Navarra 4 Internet NÚMERO DE TRABAJADORES: 6
MULTINACIONAL: NO MONEDA: Euro SECTOR: Tecnología
CÓDIGO DEPARTAMENTO NOMBRE Y APELLIDOS BAJA SALARIO USUARIO CLAVE
ADMIN Administración Ana Sanz Ruiz (Jefe) NO 4700.58 anasan 3%abZKi6
Juan Gil Rus (Empleado) SI 2200.58
Lucas López Tapia (Empleado) NO 2215.65
INFOR Informática Isabel Gómez Pérez (Jefe) SI 5200.77 isabelgo 8$abcdHj
Oscar Lee Blesa (Empleado) NO 3109.26
MARKE Marketing Luis Mar Herreros (Jefe) NO 5111.09 invitado 2$xlzY#@
Se ha escrito el siguiente documento XML:
<?xml version="1.0" encoding="UTF-8"?>
<personal xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="personal.xsd"
fecha="2013-10-20" multinacional="false" moneda="Euro">
<datos-generales>
<nombre-empresa>Navarra 4 Internet</nombre-empresa>
<número-trabajadores>6</número-trabajadores>
<sector>
<tecnología />
</sector>
</datos-generales>
<datos-departamentos>
<departamento código="ADMIN" nombre-departamento="Administración">
<jefe>
<nombre-y-apellidos>Ana Sanz Ruiz</nombre-y-apellidos>
<salario>4700.58</salario>
<clave usuario="anasan">3%abZKi6</clave>
</jefe>
<empleado>
<nombre-y-apellidos>Juan Gil Rus</nombre-y-apellidos>
<baja />
<salario>2200.58</salario>
</empleado>
<empleado>
<nombre-y-apellidos>Lucas López Tapia</nombre-y-apellidos>
<salario>2215.65</salario>
</empleado>
</departamento>
<departamento código="INFOR" nombre-departamento="Informática">
<jefe>
<nombre-y-apellidos>Isabel Gómez Pérez</nombre-y-apellidos>
<baja />
<salario>5200.77</salario>
<clave usuario="isabelgo">8$abcdHj</clave>
</jefe>
<empleado>
<nombre-y-apellidos>Oscar Lee Blesa</nombre-y-apellidos>
<salario>3109.26</salario>
</empleado>
</departamento>
<departamento código="MARKE" nombre-departamento="Marketing">
<jefe>
<nombre-y-apellidos>Luis Mar Herreros</nombre-y-apellidos>
<salario>5111.09</salario>
<clave>2$xlzY#@</clave>
</jefe>
</departamento>
</datos-departamentos>
</personal>
Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 2
Escribir el código del archivo “personal.xsd” que permita validarlo, teniendo en cuenta que:
 Todos los elementos y atributos son obligatorios, a menos que se indique lo contrario.
 Los elementos datos-generales y datos-departamentos pueden aparecer indistintamente uno antes que el otro.
 Excepto para los hijos directos de los elementos personal, datos-generales y departamento, siempre que sea
posible agrupar al menos dos elementos o dos atributos, se debe utilizar group o attributeGroup.
 Los datos generales de la empresa deben ser de un tipo definido por nosotros al que llamaremos
tipoDatosGenerales, donde hay que definir los elementos nombre-empresa, número-trabajadores (que debe ser
un valor entero mayor que 0) y sector. Estos elementos deben escribirse en dicho orden en el documento XML.
 El atributo fecha debe definirse del tipo que se considere más apropiado, de entre los proporcionados por XML
Schema.
 El atributo multinacional indica si la empresa lo es, o no, con un valor lógico.
 El atributo moneda debe indicarse que es un valor fijo. Pero, no es obligatorio.
 El elemento nombre-empresa y el elemento nombre-y-apellidos de los trabajadores, deben ser del mismo tipo, al
que llamaremos tipoTexto, y donde debe indicarse que los valores admitidos para dichos elementos pueden ser
cadenas de un mínimo de 1 carácter y un máximo de 40.
 Los posibles sectores son educación, finanzas o tecnología. De tal forma que, sólo uno de ellos debe escribirse en
el archivo XML mediante un elemento vacío, como en este caso se ha escrito <tecnología />.
 Se tiene que indicar que el código de cada departamento ha de ser único.
 Sin hacer uso pattern indicar que los posibles nombres de departamento son Administración, Informática,
Marketing o Recursos humanos, no permitiéndose otro valor. Para ello, se debe definir un tipo de dato llamado
tipoDepartamento, que debe poder ser utilizado por otros atributos o elementos.
 Empleado (en cada departamento puede haber de 0 a 3) debe ser de un tipo definido por nosotros al que
llamaremos tipoEmpleado, donde hay que definir los posibles valores que pueden tener los elementos nombre-y-
apellidos, baja y salario (que deberán escribirse en ese orden en el documento XML). Por otro lado, jefe
(obligatoriamente habrá 1 por departamento) ha de ser de otro tipo llamado tipoJefe, definido como una
extensión de tipoEmpleado añadiéndole el elemento clave.
 De cada departamento (pueden haber de 1 a ilimitados), primero debe escribirse el jefe y, después, los
empleados que hubiese.
 Para indicar si un trabajador está de baja, se debe utilizar un elemento vacío, que podrá aparecer (en el caso de
que sí esté de baja) o no aparecer (en el caso contrario).
 Sin hacer de uso pattern hay que indicar que el valor del salario debe ser un número decimal mayor que 1000,
pero no mayor que 9999. Además, dicho valor podrá contener 6 dígitos como máximo y, de ellos, sólo dos podrán
ser decimales.
 La clave debe ser de un tipo definido por nosotros al que llamaremos tipoClave, y donde debe indicarse, que los
valores admitidos por este tipo pueden ser cadenas de ocho caracteres donde el primero debe ser un dígito del 0
al 9; el segundo debe ser un carácter distinto a un dígito; después, pueden aparecer de 2 a 4 letras de la “a” a la
“z”; posteriormente, podrá aparecer, o no, una letra de la “A” a la “Z”; a continuación, tendrá que estar una de
estas tres letras mayúsculas (K, Y, H); y finalmente, podrá aparecer de 0 a 3 caracteres cualesquiera.
 Usuario no es un atributo obligatorio. Ahora bien, si se escribe, debe estar formado por un mínimo de 6
caracteres y un máximo de 8 (hay que escribir esta restricción sin hacer uso de pattern). Por otro lado, se debe
indicar “invitado” como su valor por defecto.
 No hay que definir en el schema más tipos de datos que los indicados en el ejercicio: tipoDatosGenerales,
tipoDepartamento, tipoEmpleado, tipoJefe, tipoTexto y tipoClave.
Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 3
Solución:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="personal">
<xs:complexType>
<xs:all>
<xs:element name="datos-generales" type="tipoDatosGenerales"/>
<xs:element name="datos-departamentos">
<xs:complexType>
<xs:sequence>
<xs:element name="departamento" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="jefe" type="tipoJefe"/>
<xs:element name="empleado" type="tipoEmpleado"
minOccurs="0" maxOccurs="3"/>
</xs:sequence>
<xs:attributeGroup ref="atributosDepartamento"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attributeGroup ref="atributosPersonal"/>
</xs:complexType>
</xs:element>
<xs:complexType name="tipoDatosGenerales">
<xs:sequence>
<xs:element name="nombre-empresa" type="tipoTexto"/>
<xs:element name="número-trabajadores" type="xs:positiveInteger"/>
<xs:element name="sector">
<xs:complexType>
<xs:sequence>
<xs:group ref="sectores"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 4
<xs:complexType name="tipoJefe">
<xs:complexContent>
<xs:extension base="tipoEmpleado">
<xs:sequence>
<xs:element name="clave">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="tipoClave">
<xs:attribute name="usuario" default="invitado">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="6"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="tipoEmpleado">
<xs:sequence>
<xs:group ref="datosEmpleado"/>
</xs:sequence>
</xs:complexType>
<xs:group name="datosEmpleado">
<xs:sequence>
<xs:element name="nombre-y-apellidos" type="tipoTexto"/>
<xs:element name="baja" minOccurs="0"/>
<xs:element name="salario">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minExclusive value="1000"/>
<xs:maxInclusive value="9999"/>
<xs:totalDigits value="6"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:group name="sectores">
<xs:choice>
<xs:element name="educación"/>
<xs:element name="finanzas"/>
<xs:element name="tecnología"/>
</xs:choice>
</xs:group>
<xs:attributeGroup name="atributosPersonal">
<xs:attribute name="fecha" type="xs:date" use="required"/>
<xs:attribute name="multinacional" type="xs:boolean" use="required"/>
<xs:attribute name="moneda" fixed="Euro"/>
</xs:attributeGroup>
Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 5
<xs:attributeGroup name="atributosDepartamento">
<xs:attribute name="código" type="xs:ID" use="required"/>
<xs:attribute name="nombre-departamento" type="tipoDepartamento"
use="required"/>
</xs:attributeGroup>
<xs:simpleType name="tipoDepartamento">
<xs:restriction base="xs:string">
<xs:enumeration value="Administración"/>
<xs:enumeration value="Informática"/>
<xs:enumeration value="Marketing"/>
<xs:enumeration value="Recursos humanos"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="tipoTexto">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="40"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="tipoClave">
<xs:restriction base="xs:string">
<xs:pattern value="dD[a-z]{2,4}[A-Z]?[KYH].{0,3}"/>
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Véase más ejercicios resueltos de XSD en www.abrirllave.com/xsd/ejercicios-resueltos.php con Licencia Creative Commons (CC BY-SA 4.0).

Más contenido relacionado

La actualidad más candente

INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalMaria Garcia
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400rusocaliente
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Erivan Martinez Ovando
 
Guia de ejercicios de excel básico
Guia de ejercicios de excel básicoGuia de ejercicios de excel básico
Guia de ejercicios de excel básicoAdriana Medina
 
Entidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foraneaEntidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foranealinis129
 
Presentacion xml
Presentacion xmlPresentacion xml
Presentacion xmlitsl
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalclaudyabra
 

La actualidad más candente (20)

INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
Tipos de datos. excel (1)
Tipos de datos. excel (1)Tipos de datos. excel (1)
Tipos de datos. excel (1)
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
3. Modelo ER - Relacional
3. Modelo ER - Relacional3. Modelo ER - Relacional
3. Modelo ER - Relacional
 
SQL
SQLSQL
SQL
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
 
Guia de ejercicios de excel básico
Guia de ejercicios de excel básicoGuia de ejercicios de excel básico
Guia de ejercicios de excel básico
 
Entidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foraneaEntidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foranea
 
Presentacion xml
Presentacion xmlPresentacion xml
Presentacion xml
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 

Similar a Personal departamentos XSD

Similar a Personal departamentos XSD (20)

Videoconferencia
VideoconferenciaVideoconferencia
Videoconferencia
 
F unciones exel
F unciones exelF unciones exel
F unciones exel
 
EXCEL ESTADISTICA
EXCEL ESTADISTICAEXCEL ESTADISTICA
EXCEL ESTADISTICA
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
Ejerciciocompletocolegio 100508161155-phpapp02
Ejerciciocompletocolegio 100508161155-phpapp02Ejerciciocompletocolegio 100508161155-phpapp02
Ejerciciocompletocolegio 100508161155-phpapp02
 
Excel pestañas terminada
Excel pestañas terminadaExcel pestañas terminada
Excel pestañas terminada
 
Bases de datos colegio
Bases de datos colegioBases de datos colegio
Bases de datos colegio
 
Ambiente excel laura eugenia martinez garcia
Ambiente excel laura eugenia martinez garciaAmbiente excel laura eugenia martinez garcia
Ambiente excel laura eugenia martinez garcia
 
Funsion si; sumar.si; promedio.si; contar.si
Funsion si; sumar.si; promedio.si; contar.siFunsion si; sumar.si; promedio.si; contar.si
Funsion si; sumar.si; promedio.si; contar.si
 
Excel martinez laura
Excel martinez lauraExcel martinez laura
Excel martinez laura
 
3ra actividad 4to periodo 7
3ra actividad 4to periodo 73ra actividad 4to periodo 7
3ra actividad 4to periodo 7
 
Funciones de estadisticas
Funciones de estadisticasFunciones de estadisticas
Funciones de estadisticas
 
Xml
XmlXml
Xml
 
Colegio 11 2
Colegio 11 2Colegio 11 2
Colegio 11 2
 
Trabajo Práctico Access
Trabajo Práctico AccessTrabajo Práctico Access
Trabajo Práctico Access
 
ACCESS 2010 1º PARTE (1).pptx
ACCESS 2010 1º PARTE (1).pptxACCESS 2010 1º PARTE (1).pptx
ACCESS 2010 1º PARTE (1).pptx
 
EL AMBIENTE DE EXCELL
EL AMBIENTE DE EXCELLEL AMBIENTE DE EXCELL
EL AMBIENTE DE EXCELL
 
Ada # 1 :)
Ada # 1 :)Ada # 1 :)
Ada # 1 :)
 
Formularios en HTML5
Formularios en HTML5Formularios en HTML5
Formularios en HTML5
 
Funciones más utilizadas de Excel
Funciones más utilizadas de ExcelFunciones más utilizadas de Excel
Funciones más utilizadas de Excel
 

Más de Abrirllave

Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesAbrirllave
 
Taller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo WebTaller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo WebAbrirllave
 
Libro de Algoritmos
Libro de AlgoritmosLibro de Algoritmos
Libro de AlgoritmosAbrirllave
 
Llamadas a subalgoritmos
Llamadas a subalgoritmosLlamadas a subalgoritmos
Llamadas a subalgoritmosAbrirllave
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de saltoAbrirllave
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivasAbrirllave
 
Instrucciones de control alternativas
Instrucciones de control alternativasInstrucciones de control alternativas
Instrucciones de control alternativasAbrirllave
 
Ejercicio - Intercambio de los valores de dos variables
Ejercicio - Intercambio de los valores de dos variablesEjercicio - Intercambio de los valores de dos variables
Ejercicio - Intercambio de los valores de dos variablesAbrirllave
 
Ejercicio - Nota media de tres exámenes
Ejercicio - Nota media de tres exámenesEjercicio - Nota media de tres exámenes
Ejercicio - Nota media de tres exámenesAbrirllave
 
Ejercicio - Suma y multiplicación de dos números
Ejercicio - Suma y multiplicación de dos númerosEjercicio - Suma y multiplicación de dos números
Ejercicio - Suma y multiplicación de dos númerosAbrirllave
 
Ejercicio - Volumen de un cubo
Ejercicio - Volumen de un cuboEjercicio - Volumen de un cubo
Ejercicio - Volumen de un cuboAbrirllave
 
Ejercicio - De pesetas a euros
Ejercicio - De pesetas a eurosEjercicio - De pesetas a euros
Ejercicio - De pesetas a eurosAbrirllave
 
Ejercicio - Saludo
Ejercicio - SaludoEjercicio - Saludo
Ejercicio - SaludoAbrirllave
 
Estructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigoEstructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigoAbrirllave
 
Instrucciones primitivas en pseudocódigo
Instrucciones primitivas en pseudocódigoInstrucciones primitivas en pseudocódigo
Instrucciones primitivas en pseudocódigoAbrirllave
 
Operadores y expresiones en pseudocódigo
Operadores y expresiones en pseudocódigoOperadores y expresiones en pseudocódigo
Operadores y expresiones en pseudocódigoAbrirllave
 
Tipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigoTipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigoAbrirllave
 
Identificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoIdentificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoAbrirllave
 

Más de Abrirllave (20)

Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Taller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo WebTaller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo Web
 
Libro de Algoritmos
Libro de AlgoritmosLibro de Algoritmos
Libro de Algoritmos
 
Llamadas a subalgoritmos
Llamadas a subalgoritmosLlamadas a subalgoritmos
Llamadas a subalgoritmos
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de salto
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivas
 
Instrucciones de control alternativas
Instrucciones de control alternativasInstrucciones de control alternativas
Instrucciones de control alternativas
 
Apuntes de SEO
Apuntes de SEOApuntes de SEO
Apuntes de SEO
 
Ordinogramas
OrdinogramasOrdinogramas
Ordinogramas
 
Ejercicio - Intercambio de los valores de dos variables
Ejercicio - Intercambio de los valores de dos variablesEjercicio - Intercambio de los valores de dos variables
Ejercicio - Intercambio de los valores de dos variables
 
Ejercicio - Nota media de tres exámenes
Ejercicio - Nota media de tres exámenesEjercicio - Nota media de tres exámenes
Ejercicio - Nota media de tres exámenes
 
Ejercicio - Suma y multiplicación de dos números
Ejercicio - Suma y multiplicación de dos númerosEjercicio - Suma y multiplicación de dos números
Ejercicio - Suma y multiplicación de dos números
 
Ejercicio - Volumen de un cubo
Ejercicio - Volumen de un cuboEjercicio - Volumen de un cubo
Ejercicio - Volumen de un cubo
 
Ejercicio - De pesetas a euros
Ejercicio - De pesetas a eurosEjercicio - De pesetas a euros
Ejercicio - De pesetas a euros
 
Ejercicio - Saludo
Ejercicio - SaludoEjercicio - Saludo
Ejercicio - Saludo
 
Estructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigoEstructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigo
 
Instrucciones primitivas en pseudocódigo
Instrucciones primitivas en pseudocódigoInstrucciones primitivas en pseudocódigo
Instrucciones primitivas en pseudocódigo
 
Operadores y expresiones en pseudocódigo
Operadores y expresiones en pseudocódigoOperadores y expresiones en pseudocódigo
Operadores y expresiones en pseudocódigo
 
Tipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigoTipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigo
 
Identificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoIdentificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigo
 

Último

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 

Último (19)

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 

Personal departamentos XSD

  • 1. Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 1 EJERCICIO RESUELTO - Personal de departamentos (XSD - XML Schema Definition) Si para representar la siguiente información ficticia: INFORMACIÓN DEL PERSONAL DE LOS DEPARTAMENTOS A FECHA 20-10-2013 NOMBRE: Navarra 4 Internet NÚMERO DE TRABAJADORES: 6 MULTINACIONAL: NO MONEDA: Euro SECTOR: Tecnología CÓDIGO DEPARTAMENTO NOMBRE Y APELLIDOS BAJA SALARIO USUARIO CLAVE ADMIN Administración Ana Sanz Ruiz (Jefe) NO 4700.58 anasan 3%abZKi6 Juan Gil Rus (Empleado) SI 2200.58 Lucas López Tapia (Empleado) NO 2215.65 INFOR Informática Isabel Gómez Pérez (Jefe) SI 5200.77 isabelgo 8$abcdHj Oscar Lee Blesa (Empleado) NO 3109.26 MARKE Marketing Luis Mar Herreros (Jefe) NO 5111.09 invitado 2$xlzY#@ Se ha escrito el siguiente documento XML: <?xml version="1.0" encoding="UTF-8"?> <personal xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd" fecha="2013-10-20" multinacional="false" moneda="Euro"> <datos-generales> <nombre-empresa>Navarra 4 Internet</nombre-empresa> <número-trabajadores>6</número-trabajadores> <sector> <tecnología /> </sector> </datos-generales> <datos-departamentos> <departamento código="ADMIN" nombre-departamento="Administración"> <jefe> <nombre-y-apellidos>Ana Sanz Ruiz</nombre-y-apellidos> <salario>4700.58</salario> <clave usuario="anasan">3%abZKi6</clave> </jefe> <empleado> <nombre-y-apellidos>Juan Gil Rus</nombre-y-apellidos> <baja /> <salario>2200.58</salario> </empleado> <empleado> <nombre-y-apellidos>Lucas López Tapia</nombre-y-apellidos> <salario>2215.65</salario> </empleado> </departamento> <departamento código="INFOR" nombre-departamento="Informática"> <jefe> <nombre-y-apellidos>Isabel Gómez Pérez</nombre-y-apellidos> <baja /> <salario>5200.77</salario> <clave usuario="isabelgo">8$abcdHj</clave> </jefe> <empleado> <nombre-y-apellidos>Oscar Lee Blesa</nombre-y-apellidos> <salario>3109.26</salario> </empleado> </departamento> <departamento código="MARKE" nombre-departamento="Marketing"> <jefe> <nombre-y-apellidos>Luis Mar Herreros</nombre-y-apellidos> <salario>5111.09</salario> <clave>2$xlzY#@</clave> </jefe> </departamento> </datos-departamentos> </personal>
  • 2. Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 2 Escribir el código del archivo “personal.xsd” que permita validarlo, teniendo en cuenta que:  Todos los elementos y atributos son obligatorios, a menos que se indique lo contrario.  Los elementos datos-generales y datos-departamentos pueden aparecer indistintamente uno antes que el otro.  Excepto para los hijos directos de los elementos personal, datos-generales y departamento, siempre que sea posible agrupar al menos dos elementos o dos atributos, se debe utilizar group o attributeGroup.  Los datos generales de la empresa deben ser de un tipo definido por nosotros al que llamaremos tipoDatosGenerales, donde hay que definir los elementos nombre-empresa, número-trabajadores (que debe ser un valor entero mayor que 0) y sector. Estos elementos deben escribirse en dicho orden en el documento XML.  El atributo fecha debe definirse del tipo que se considere más apropiado, de entre los proporcionados por XML Schema.  El atributo multinacional indica si la empresa lo es, o no, con un valor lógico.  El atributo moneda debe indicarse que es un valor fijo. Pero, no es obligatorio.  El elemento nombre-empresa y el elemento nombre-y-apellidos de los trabajadores, deben ser del mismo tipo, al que llamaremos tipoTexto, y donde debe indicarse que los valores admitidos para dichos elementos pueden ser cadenas de un mínimo de 1 carácter y un máximo de 40.  Los posibles sectores son educación, finanzas o tecnología. De tal forma que, sólo uno de ellos debe escribirse en el archivo XML mediante un elemento vacío, como en este caso se ha escrito <tecnología />.  Se tiene que indicar que el código de cada departamento ha de ser único.  Sin hacer uso pattern indicar que los posibles nombres de departamento son Administración, Informática, Marketing o Recursos humanos, no permitiéndose otro valor. Para ello, se debe definir un tipo de dato llamado tipoDepartamento, que debe poder ser utilizado por otros atributos o elementos.  Empleado (en cada departamento puede haber de 0 a 3) debe ser de un tipo definido por nosotros al que llamaremos tipoEmpleado, donde hay que definir los posibles valores que pueden tener los elementos nombre-y- apellidos, baja y salario (que deberán escribirse en ese orden en el documento XML). Por otro lado, jefe (obligatoriamente habrá 1 por departamento) ha de ser de otro tipo llamado tipoJefe, definido como una extensión de tipoEmpleado añadiéndole el elemento clave.  De cada departamento (pueden haber de 1 a ilimitados), primero debe escribirse el jefe y, después, los empleados que hubiese.  Para indicar si un trabajador está de baja, se debe utilizar un elemento vacío, que podrá aparecer (en el caso de que sí esté de baja) o no aparecer (en el caso contrario).  Sin hacer de uso pattern hay que indicar que el valor del salario debe ser un número decimal mayor que 1000, pero no mayor que 9999. Además, dicho valor podrá contener 6 dígitos como máximo y, de ellos, sólo dos podrán ser decimales.  La clave debe ser de un tipo definido por nosotros al que llamaremos tipoClave, y donde debe indicarse, que los valores admitidos por este tipo pueden ser cadenas de ocho caracteres donde el primero debe ser un dígito del 0 al 9; el segundo debe ser un carácter distinto a un dígito; después, pueden aparecer de 2 a 4 letras de la “a” a la “z”; posteriormente, podrá aparecer, o no, una letra de la “A” a la “Z”; a continuación, tendrá que estar una de estas tres letras mayúsculas (K, Y, H); y finalmente, podrá aparecer de 0 a 3 caracteres cualesquiera.  Usuario no es un atributo obligatorio. Ahora bien, si se escribe, debe estar formado por un mínimo de 6 caracteres y un máximo de 8 (hay que escribir esta restricción sin hacer uso de pattern). Por otro lado, se debe indicar “invitado” como su valor por defecto.  No hay que definir en el schema más tipos de datos que los indicados en el ejercicio: tipoDatosGenerales, tipoDepartamento, tipoEmpleado, tipoJefe, tipoTexto y tipoClave.
  • 3. Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 3 Solución: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="personal"> <xs:complexType> <xs:all> <xs:element name="datos-generales" type="tipoDatosGenerales"/> <xs:element name="datos-departamentos"> <xs:complexType> <xs:sequence> <xs:element name="departamento" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="jefe" type="tipoJefe"/> <xs:element name="empleado" type="tipoEmpleado" minOccurs="0" maxOccurs="3"/> </xs:sequence> <xs:attributeGroup ref="atributosDepartamento"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:all> <xs:attributeGroup ref="atributosPersonal"/> </xs:complexType> </xs:element> <xs:complexType name="tipoDatosGenerales"> <xs:sequence> <xs:element name="nombre-empresa" type="tipoTexto"/> <xs:element name="número-trabajadores" type="xs:positiveInteger"/> <xs:element name="sector"> <xs:complexType> <xs:sequence> <xs:group ref="sectores"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType>
  • 4. Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 4 <xs:complexType name="tipoJefe"> <xs:complexContent> <xs:extension base="tipoEmpleado"> <xs:sequence> <xs:element name="clave"> <xs:complexType> <xs:simpleContent> <xs:extension base="tipoClave"> <xs:attribute name="usuario" default="invitado"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="6"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="tipoEmpleado"> <xs:sequence> <xs:group ref="datosEmpleado"/> </xs:sequence> </xs:complexType> <xs:group name="datosEmpleado"> <xs:sequence> <xs:element name="nombre-y-apellidos" type="tipoTexto"/> <xs:element name="baja" minOccurs="0"/> <xs:element name="salario"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minExclusive value="1000"/> <xs:maxInclusive value="9999"/> <xs:totalDigits value="6"/> <xs:fractionDigits value="2"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:group> <xs:group name="sectores"> <xs:choice> <xs:element name="educación"/> <xs:element name="finanzas"/> <xs:element name="tecnología"/> </xs:choice> </xs:group> <xs:attributeGroup name="atributosPersonal"> <xs:attribute name="fecha" type="xs:date" use="required"/> <xs:attribute name="multinacional" type="xs:boolean" use="required"/> <xs:attribute name="moneda" fixed="Euro"/> </xs:attributeGroup>
  • 5. Ejercicio - Personal de departamentos | Tutorial de XSD - XML Schema | Abrirllave.com - 5 <xs:attributeGroup name="atributosDepartamento"> <xs:attribute name="código" type="xs:ID" use="required"/> <xs:attribute name="nombre-departamento" type="tipoDepartamento" use="required"/> </xs:attributeGroup> <xs:simpleType name="tipoDepartamento"> <xs:restriction base="xs:string"> <xs:enumeration value="Administración"/> <xs:enumeration value="Informática"/> <xs:enumeration value="Marketing"/> <xs:enumeration value="Recursos humanos"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="tipoTexto"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="tipoClave"> <xs:restriction base="xs:string"> <xs:pattern value="dD[a-z]{2,4}[A-Z]?[KYH].{0,3}"/> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:schema> Véase más ejercicios resueltos de XSD en www.abrirllave.com/xsd/ejercicios-resueltos.php con Licencia Creative Commons (CC BY-SA 4.0).