Documento conocimientos básicos en XML Schema
|
|
|
- Julián Palma Botella
- hace 8 años
- Vistas:
Transcripción
1 Documento conocimientos básicos en XML Schema Historia los DTD (Document Type Definition) Antes de que existiera el XML Schema, habían varios esquemas previos. Uno de los esquemas, el DTD o Document Type Definition, venía en la especificación original XML 1.0. Tanto los DTDs como XML provienen de un lenguaje previo, SGML (Standard Generalized Markup Language), por lo que ya tienen mucho tiempo de existir. Supongamos que tenemos la siguiente información de empleados: <empleado id= > <nombre>monica</nombre> <fechaingreso> </fechaingreso> <salario> </salario> </empleado> El siguiente DTD describe la estructura del documento: <!-- empleado.dtd --> <!ELEMENT empleado (nombre, fechaingreso, salario)> <!ATTLIST empleado id CDATA #REQUIRED> <!ELEMENT nombre (#PCDATA)> <!ELEMENT fechaingreso (#PCDATA)> <!ELEMENT salario (#PCDATA)> Este DTD puede ser asociado al documento original a través de una declaración DOCTYPE: <!DOCTYPE empleado SYSTEM empleado.dtd > <empleado id= > <nombre>monica</nombre> <fechaingreso> </fechaingreso> <salario> </salario> </empleado> El mayor beneficio de los DTDs es la validación. Los parsers y procesors son programas que pueden leer XML y decodificarlo. Un validating parser es uno que además puede validar si un documento conforma con un esquema específico. Cuando un validating parser XML versión 1.0 lee este archivo XML versión 1.0, también puede leer el DTD asociado y validar si el documento conforma con la definición. Esto significa que los DTDs, al hacer la validación, ahorran mucha codificación de manejo de errores. Los DTDs fueron diseñados para sistemas centrados en documentos, y son apropiados para aplicaciones de publicación electrónica SGML. Sin embargo, tiene limitantes al aplicarse a ambientes de desarrollo de software modernos. Las limitantes más importantes tienen que ver con que el DTD en sí no cumple con el estándar XML mismo, y que los DTDs no soportan el concepto de namespaces, tampoco el concepto de tipos de datos usados en lenguajes de programación (como string, integer, etc.) y tampoco la definición de tipos customizados. 1
2 DTDs no son XML Puesto que la sintaxis del DTD no es XML, Ud. no puede utilizar herramientas estándar XML para procesarlo programáticamente. La mayoría de procesadores XML soportan validación con DTDs, pero no pueden accesar programáticamente a los elementos del DTD mismo, debido a la complejidad de su sintaxis. DTDs no soportan el concepto de Namespaces Los DTDs fueron creados antes de que existiera el concepto de namespaces, por lo que es difícil que trabajen en conjunto. Muchos desarrolladores escojen usar DTDs o usar namespaces, pero evitan usar ambos al mismo tiempo, debido a la complejidad de hacerlo. DTDs no soportan Tipos de Datos DTDs fueron creados para sistemas orientados a documentos, en donde usualmente no existen conceptos como tipos de datos programáticos. Por ello, sólo existen pocos atributos descriptivos, que son totalmente distintos a los que estamos acostumbrados los programadores. Realmente son sólo casos especiales del tipo text (CDATA). Y sólo pueden aplicarse a atributos, pero no a elementos. Tipo CDATA ID IDREF IDREFS ENTITY ENTITIES NMTOKEN NMTOKENS Descripción Datos tipo caracter arbitrarios Un nombre que es único dentro del documento Una referencia a un valor de ID dentro del documento Una lista de valores IDREF separados por espacios El nombre de una entidad sin parsear declarada en el DTD Una lista de valores ENTITY delimitados por espacios Un nombre XML válido Una lista de valores NMTOKEN separados por espacios DTDs no son extensibles Uno está limitado a los tipos que vienen con el sistema. 2
3 Conceptos Básicos de XML Schema XML Schema, a diferencia de DTDs, es un vocabulario basado en XML para describir instancias de documentos XML. Un schema describe una clase de documentos, del cual pueden haber varias instancias. Esta relación es parecida a la que hay entre clases y objetos en los sistemas orientados a objetos. Una clase está relacionada con un objeto de la misma forma que un schema a un documento XML. Por ello, al trabajar con un XML Schema, estaremos trabajando con más de un documento. figura: Vínculos por Identificador de Namespace Definición de Schema <xsd:schema targetnamespace= > <xsd:element name=empleado> <tns:empleado xmlns:tns= > <nombre>monica</nombre> Instancia Documento XML <tns:empleado xmlns:tns= <nombre>rachel</nombre> Instancia Documento XML Los elementos utilizados en una definición de Schema provienen del namespace El siguiente código muestra una plantilla básica para Schemas: <xsd:schema xmln:xsd= targetnamespace= <!-- aca van las definiciones --> Las definiciones de Schema deben tener un elemento raíz (root) xsd:schema. Dentro de este elemento van anidados una variedad de elementos, que incluyen pero no están limitados a: xsd:element, xsd:attribute, xsd:complextype. El hecho de que un XML Schema es en sí un documento XML resuelve la primera limitante que tenían los DTDs. Las definiciones de Schema pueden ser procesados con una variedad de herramientas XML 1.0 estándar, tales como DOM, SAX, XPath y XSLT. Por esta simplicidad, han aparecido muchas herramientas para el manejo de schemas. 3
4 XML Schema y Namespaces Atributo targetnamespace Las definiciones dentro del xsd:schema están automáticamente asociadas con el namespace especificado en el atributo targetnamespace. En el ejemplo previo, las definiciones del schema estarían asociadas con el namespace En la instancia del documento XML, el identificador de namespace es la clave que vincula al documento con la definición de Schema correspondiente (ver figura 2). Por ejemplo, la siguiente instancia de documento XML contiene el elemento de empleado del namespace : <tns:empleado xmlns:tns= /> (nota: el prefijo que usamos acá: tns es arbitrario. Puede utilizar otros prefijos) El namespace del elemento del empleado es el mismo que el targetnamespace en la definción del Schema. Para poder utilizar el Schema al momento de procesar el elemento empleado, el procesador necesita localizar la definición de schema apropiada. La forma en que el procesador localiza la definición de schema no está definida por la especificación, pero la mayoría de procesadores permiten cargar un caché en memoria de los schemas que utilizará mientras procesa los documentos. Atributo schemalocation XML Schema también provee un atributo schemalocation para que en la instancia del documento nos dé una pista de dónde podemos encontrar las definiciones de Schema requeridos. El atributo schemalocation está definido en el namespace el cual está reservado para atributos que sólo aparecen en instancias de documentos no aparecen en la definición del Schema. Este atributo contiene una lista separada por espacio de parejas de indicadores y URL, como se muestra: (nota: el prefijo xsi utilizado es arbitrario) <tns:empleado xmlns:tns= xmlns:xsi= xsi:schemalocation= /> En este caso, si el procesador XML todav[ia no tiene acceso a la definición de schema apropiada para el namespace lo podría bajar de Elementos y Atributos Los elementos y atributos pueden ser definidos como parte del targetnamespace utilizando los elementos xsd:element y xsd:attribute. Por ejemplo, supongamos que queremos describir el siguiente documento en el cual están siendo considerados los namespaces: <tns:empleado xmlns:tns= tns:id= > <tns:nombre>monica</tns:nombre> <tns:fechaingreso> </tns:fechaingreso> <tns:salario> </tns:salario> La forma más sencilla de definirla es a través de la siguiente definición de Schema: 4
5 <xsd:element name= empleado /> <xsd:element name= nombre /> <xsd:element name= fechaingreso /> <xsd:element name= salario /> <xsd:attribute name= id /> Note que con sólo colocar las declaraciones xsd:element y xsd:attribute dentro del elemento xsd:schema hace que los asocie con el namespace Estas declaraciones son consideradas globales en el Schema, ya que son hijos del elemento raíz xsd:schema. Ya que este Schema especifica que estos elementos / atributos son parte de deben asociarse con dicho namespace en la instancia del documento. Debemos sercuidadosos con los cambios de namespaces enlas instanciasde los documentos, pues fácilmente los podemos dejar inválidos. La manera correcta de establecer las declaraciones está en la página anterior. Por ejemplo, la siguiente instancia es inválida, pues tenemos el problema que los elementos nombre,fechaingreso, y salario y el atributo id no están calificados (les falta el prefijo tns: ) : <tns:empleado xmlns:tns= id= > <nombre>monica</tns:nombre> <fechaingreso> </tns:fechaingreso> <salario> </tns:salario> En el caso siguiente se declara un namespace por default, en vez de usar un prefijo: <empleado xmlns= id= > <nombre>monica</tns:nombre> <fechaingreso> </tns:fechaingreso> <salario> </tns:salario> </empleado> Acá casi funciona pero sigue siendo inválido, pues todos los elementos,como <nombre>, <fechaingreso>, <salario> quedan dentro del default namespace. Sin embargo, el atributo id sigue estando no calificado, pues un default namespace no aplica a atributos. También tenemos otro problema, y es que este ejemplo deja indefinido la relación estructural o jerárquica entre los elementos del namespace. De forma que la siguiente instancia del documento también sería válida para XML, aunque no tenga sentido para el programa: <tns:nombre xmlns:tns= > <tns:empleado> <tns:fechaingreso> </tns:fechaingreso> <tns:salario tns:id= > </tns:salario > </tns:empleado > </tns:nombre> XML Schema permite describir la estructura de un elemento a través de definiciones de tipos complejos 5
6 Definiendo Tipos Complejos (Complex Types) En los antiguos DTDs, el modelo de contenido de un elemento está definido dentro de una declaración de ELEMENT, como se muestra acá: <!ELEMENT empleado (nombre, fechaingreso, salario)> Esta declaración de elemento dice que un elemento empleado contiene un elemento nombre, seguido de un elemento fechaingreso, y luego por un elemento salario en ese orden. XML Schema permite definir en forma similar el modelo de contenido de un elemento, al anidar un elemento xsd:complextype dentro dela declaración del xsd:element, como se muestra a continuación: <xsd:element name= empleado > <xsd:complextype> <!-- modelo de contenido del empleado va acá --> El modelo del XML Schema se parece más que el DTD a un lenguaje de programación en donde Ud. vincula (bind) variables a definiciones de tipo formales. El xsd:complextype dentro de la declaración del elemento efectivamente lo vincula on dicho elemento como que si fuera una variable. El pensar en términos de definiciones de tipo es un cambio mayor de paradigma a como se trabajaba con los DTDs. Elementos Compositor Lo que Ud. ponga dentro del elemento xsd:complextype es similar a lo que coloca entre paréntesis en una declaración DTD ELEMENT. En la declarión DTD previa: ELEMENT, del empleado, declaramos una secuencia ordenada de nombre, fechaingreso y salario tiene que ir en ese orden. Otra forma de declarar elementos dentro de paréntesis en DTD es con el separador pipe (la barrita vertical ), que significa: escoja uno de los elementos: <!ELEMENT empleado (nombre fechaingreso salario) > En XML Schema, Ud. especifica las características del modelo de contenido a través de un elemento compositor, que está anidado como un hijo del elemento xsd:complextype. XML Schema define tres elementos compositores: Compositor Equivalente DTD Definición xsd:sequence Grupo separado por comas Una secuencia ordenada de items contenidos xsd:choice Grupo separado por pipes (rayas verticales) Una opción de entre los items contenidos xsd:all No hay equivalente Todos los items contenidos, en cualquier orden 6
7 No hay equivalente DTD del elemento compositor xsd:all. Este elemento especifica que el modelo de contenido consiste de todos los items, en cualquier orden. El diseño del DTD carece de esta funcionalidad de poner los items en cualquier orden aunque podemos definirlos especificando las posibles permutaciones, como sigue: <!ELEMENT empleado ( (nombre, fechaingreso, salario) (nombre, salario, fechaingreso) (fechaingreso, nombre, salario) (fechaingreso, salario, nombre) (salario, nombre, fechaingreso) (salario, fechaingreso, nombre) ) > Notamos que las matemáticas combinatorias rápidamente hacen insostenible este esquema. Los elementos compositor pueden contener refrencias a declaraciones globales de elementos, declaraciones locales de elementos, a otros compositor y a ciertos constructos como comodines o wildcards y referencias a grupos. El siguiente ejemplo muestra cómo definir un xsd:complextype que referencia elementos globales definidos en otro lugar del schema: xmlns:tns= <xsd:element name= empleado > <xsd:complextype> <xsd:element ref= tns:nombre /> <xsd:element ref= tns:fechaingreso /> <xsd:element ref= tns:salario /> <xsd:element name= nombre /> <xsd:element name= fechaingreso /> <xsd:element name= salario /> Note que el atributo ref toma un nombre de elemento prefijado. Recuerde que una vez Ud. haya declarado un elemento global en el schema, automáticamente es asociado con el targetnamespace. Cuando Ud. referencia elementos globales por nombre, son tratados como nombres calificados. Si hubieramos utilizado ref= nombre en vez de ref= tns:nombre, el procesador del schema habría buscado por el elemento nombrado asociado, sin nombre de espacio (o con el namespace por default, si se tiene ese namespace). Y el resultado es que no encontraría ningunoya que el único elemento nombre declarado en el schema es elemento nombre del namespace 7
8 Si hago que sea el namespace por default del documento, entonces podemos referenciar los elementos globales sin necesidad de un prefijo, como se muestra acá: xmlns= <xsd:element name= empleado > <xsd:complextype> <xsd:element ref= nombre /> <xsd:element ref= fechaingreso /> <xsd:element ref= salario /> <xsd:element name= nombre /> <xsd:element name= fechaingreso /> <xsd:element name= salario /> Los dos schemas anteriores son equivalentes en forma lógica simplemente han sido serializados de forma algo distinta. Ambos esquemas limitan el contenido del elemento employee, de forma que debe contener un nombre, una fechaingreso, y un salario, todos los que deben ser asociados con el namespace Declaración de Elementos Locales Ya que empleado es el único elemento de nivel superior que planeo utilizar en las instancias de los documentos, realmente no hay necesidad de definir nombre, fechaingreso y salario como elementos globales. En vez de ello, puedo definirlos localmente dentro del modelo de contenido del elemento empleado. Por ejemplo, el Schema siguiente contiene una declaración de elemento empleado, que a su vez contiene una secuencia de declaraciones locales de elementos. En este ejemplo, los elementos nombre, fechaingreso, y salario son declarados como parte del elemento empleado y no pueden utilizarse en otra parte de la instancia. La única declaración que aparece globalmente como hijo del elemento raíz xsd:schema - es la declaración del elemento empleado. <!-- declaraciones de elementos globales --> <xsd:element name= empleado > <xsd:complextype> <!-- declaraciones de elementos locales --> <xsd:element name= nombre /> <xsd:element name= fechaingreso /> <xsd:element name= salario /> Esto nos trae la siguiente pregunta: Deberían asociarse los elementos locales con el namespace objetivo (target)? 8
9 Scoping Local y Namespaces Para poder contestar la inquietud anterior, consideremos un ejemplo análogo en un lenguaje que soporta namespaces, como C#. Ver esta definición de una clase C# que está definida dentro del namespace ejemplo: namespace ejemplo { public class empleado { public string nombre; public string fechaingreso; public double salary; } } Cuáles identificadores son realmente visibles dentro de este namespace? Sólo uno: empleado. Los identificadores nombre, fechaingreso, salario sólo son visibles dentro de la clase empleado. Por ello, Ud. necesita calificar empleado con el identificador de namespace pero no es necesario hacerlo con los nombres de miembros locales, como se muestra acá: // el empleado está calificado por el namespace ejemplo.empleado c = new ejemplo.empleado(); // los miembros locales no están calificados c.nombre = Monica ; c.fechaingreso = ; c.salario = ; // esto no funciona, ni tiene sentido // c.ejemplo.nombre = Monica Los diseñadores de XML Schema pensaron en scoping local, pues por default trabaja de la misma forma. En un XML Schema sólo los elementos globales necesitan ser calificados con el namespace objetivo en la instancia del documento; y los elementos locales deben permanecer no cualificados. Acá mostramos un documento XML que es una instancia válida del schema completo mostrado previamente: <!--elemento global calificado --> <tns:empleado xmlns:tns= > <! elementos locales no calificados --> <nombre>monica</nombre> <fechaingreso> </fechaingreso> <salario> </salario> Si modificara esta instancia de tal forma que los elementos nombre, fechaingreso, salario estén calificados por el namespace el documento quedaría inválido según el Schema. Recuerde que aún cambios sutiles a la declaración del namespace por default pueden causar esto. 9
10 Ya que algunos podría querer otro enfoque, los diseñadores del XML Schema permiten controlar si los elementos locales deben ser calificados o no calificados en la instancia. Ud. puede controlarlo elemento por elemento a través del atributo form, como se ilustra acá: <xsd:element name= empleado > <xsd:complextype> <!-- declaraciones de elementos locales --> <xsd:element name= nombre form= qualified /> <xsd:element name= fechaingreso /> <xsd:element name= salario form= qualified /> Una instancia válida del elemento empleado deberá ahora tener un elemento hijo cualificado nombre y un elemento no cualificado fechaingreso, seguido por un elemento hijo calificado salario, como en esta instancia válida: <tns:empleado xmlns:tns= > <tns:nombre>monica</tns:nombre> <fechaingreso> </fechaingreso> <tns:salario> </tns:salario> Ud. también puede cambiar en el schema los valores por default para todas las declaraciones de elementos locales a través del atributo elementformdefault, como se muestra acá: targetnamespace= elementformdefault= qualified > Ahora, por default, todos los elementos locales deberán ser calificados en la instancia (asumiendo que no se ha utilizado el atributo form para sobregirar los valores para un elemento en particular), como en esta instancia válida: <tns:empleado xmlns:tns= > <tns:nombre>monica</tns:nombre> <tns:fechaingreso> </tns:fechaingreso> <tns:salario> </tns:salario> Ya que en este caso todos los elementos están calificados, podríamos escoger usar una declaración de namespace por default, y la instancia se mantendría válida: <empleado xmlns:tns= > <nombre>monica<nombre> <fechaingreso> <fechaingreso> <salario> <salario> </empleado> 10
11 Limitantes de Ocurrencias (Ocurrence Constraints) En un DTD Ud. puede controlar cuántas veces ocurre un elemento en un modelo de contenido a través de los modificadores *, +,?. En XML Schema se eliminaron estos atributos, y simplemente se definieron dos atributos: minoccurs y maxoccurs, que pueden ser usados en declaraciones de elementos, compositors, y algunos otros constructos de los Schemas. La cantidad mínima que un item debe aparecer, y la cantidad máxima de items que puede aparecer son especificados por minoccurs y maxoccurs, respectivamente. El valor por default de ambos atributos es 1. Ud. también puede usar el valor unbounded en maxoccurs para especificar que es aceptable tener ilimitadas ocurrencias. Considere la siguiente declaración DTD ELEMENT: <!ELEMENT empleado ( (pnombre, (snombre sn )?, apellido, apellido? ), (proyecto, rol)* )> Esta declaración ELEMENT puede ser re-escrita en un XML Schema usando varios compositores anidados junto con minoccurs / maxoccurs, como se muestra: <!-- declaraciones de elementos globales --> <xsd:element name= empleado > <xsd:complextype> <xsd:element name= pnombre /> <xsd:choice minoccurs= 0 > <xsd:element name= snombre /> <xsd:element name= sn /> </xsd:choice> <xsd:element name= apellido maxoccurs= 2 /> <xsd:sequence minoccurs= 0 maxoccurs= unbounded > <xsd:element name= project /> <xsd:element name= role /> 11
12 Tipos Complejos y Atributos Con los DTDs, los atributos eran definidos para un elemento particular. La siguiente declaración ATTLIST asocia el atributo id con el elemento empleado: <!ELEMENT empleado (nombre, fechaingreso, salario)> <!ATTLIST empleado id CDATA #REQUIRED> No es posible definir atributos globales en DTDs. Siempre deben estar asociados con un elemento en particular, como se muestra arriba. XML Schema permite definir tanto atributos globales como locales, como con los elements. Los atributos globales son definidos usando un elemento xsd:attribute dentro del elemento raíz xsd:schema. El primer ejemplo de schema mostrado define un atributo global llamado id. Los atributos globales son para situaciones en donde Ud. no puede anticipar dónde serán usados. Los atributos también pueden ser incluídos en una definición xsd:complextype, lo que hace que sean locales a ese tipo específico. Cuando se utilizan dentro de un elemento xsd:complextype, los elementos xsd:attribute deben seguir después compositor hijo,como semuestra en lasiguiente declaración de elemento global, en donde el atributo sigue después del : <xsd:element name= empleado > <xsd:complextype> <xsd:element name= nombre /> <xsd:attribute name= id /> Como con los elementos, Ud. debe cualificar atributos globales, y no debe cualificar atributos locales en la instancia del documento por default. Lo siguiente es una instancia válida del elemento empleado definido previamente: <tns:empleado xmns:tns= id= > <nombre>monica</nombre> Sin embargo, al igual que con los elements, Ud. puede cambiar este comportamiento a través de los atributos form o attributeformdefault, si Ud. desea cualificar atributos locales. 12
13 Tipos Nombrados y Reuso Hasta este punto, hemos estado definiendo el tipo (o estructura) de los elementos a través de definiciones xsd:complextype. Estas definiciones de tipo, sin embargo, no están nombrados ya que estaban ligados al nuevo elemento declarado. La desventaja de que un tipo sea anónimo es que no puede reutilizar las definiciones de tipo. XML Schema soporta tipos nombrados (named types), y es el enfoque preferido por la mayoría de los desarrolladores debido al valioso potencial de reuso. No sólo puede Ud. reusar tipos nombrados dentro de un solo schema, sino que también puede reusar tipos nombrados entre diferentes schemas a través de elementos xsd:include y xsd:import. Ud. nombra un xsd:complextype a través del atributo name. Luego, Ud. puede vincular declaraciones de elementos a tipos nombrados a través del atributo type. El siguiente schema ilustra cómo funciona esta vinculación de elementos: xmlns:tns= > <xsd:complextype name= TipoEmpleado > <xsd:element name= nombre /> <xsd:element name= fechaingreso /> <xsd:element name= salario /> <xsd:element name= empleado type= tns:tipoempleado /> Ya que la definición del xsd:complectype es ahora un constructo global en el schema, es automáticamente asociado con el targetnamespace. Esto significa que Ud. debe utilizar un nombre cualificado cuando se refiera al TipoEmpleado en el atributo type. Otro beneficio de usar tipos nombrados es que Ud. no necesita usar declaraciones de elementos globales en el Schema si no lo desea. En vez de ello, Ud. puede especificar explícitamente el tipo de un elemento en la instancia del documento a través del atributo xsi:type, el cual también viene incluído en el namespace Por ejemplo, la siguiente instancia: <foo xsi:type= tns:tipoempleado xmlns:xsi= xmlns:tns= > <nombre>monica</nombre> <fechaingreso> </fechaingreso> <salario> </salario> </foo> El elemento foo no está declarado en ningunaparte en el schema, pero hemos especificado explícitamente su tipo, que es suficiente para que el procesador XML sepa cómo manejar su contenido. Esta técnica es similar al concepto de un cast en la mayoría de lenguajes de programación. 13
14 Tipos de Datos (Data Types) Hemos visto los detalles estructurales del documento a través de las definiciones xsd:element, xsd:attribute, y xsd:complextype. Pero no describen las características de los elementos o atributos que contienen los datos: nombre, fechaingreso, salario, id. Por el momento sólo pueden contener texto, pero queremos que sean de un formato específico. En un DTD Ud. puede especificar que un elemento sólo debe contener texto a través del token #PCDATA: <!ELEMENT nombre (#PCDATA)> Sin embargo, no podemos especificar nada con respecto al texto contenido dentro del elemento. Acá es donde XML Schema sobrepasa a los DTDs, especialmente para los desarrolladores de software. XML Schema define un set de tipos de datos internos (built-in) que pueden ser usados para limitar el contenido de elementos y atributos. Cada tipo de dato tiene un espacio de valores definido explícitamente como también un espacio lexical definido (los posibles formatos string usados en los documentos XML). Por ejemplo, el valor tipo double 4200 puede ser representado lexicalmente en una variedad de formas: 4200, , , 4200E1, 42.0E3. Para limitar el texto que puede usarse dentro de un elemento o atributo, simplemente escoja el tipo de datos con el espacio de valores/lexicales apropiados y lo usa en el atributo type de la declaración, como se muestra en el código siguiente: xmlns:tns= > <xsd:complextype name= TipoEmpleado > <xsd:element name= nombre type= xsd:string /> <xsd:element name= fechaingreso type= xsd:date /> <xsd:element name= salario type= xsd:double /> <xsd:attribute name= id type= xsd:string /> <xsd:element name= empleado type= tns:tipoempleado /> Cuando el procesador del schema valida una instancia del schema previo, se asegura de que el texto contenido dentro de cada elemento / atributo conforma con la representación lexical legal de su tipo definido. Hay tipos para casi cada necesidad, pero si se tienen necesidades especiales, como por ejemplo, almacenar un número de seguro social. XML Schema permite hacer estas especificaciones. Conclusiones XML Schema sobrepone muchas de las limitaciones y debilidades de los DTDs.La sintaxis del XML Sintax es en XML 1.0. XML Schema fue diseñado completamente alrededor de namespaces. Y, bastante importante, XML Schema soporta tipos de datos típicos de los lenguajes de programación, como también tipos customizados simples y complejos. 14
Tema IV. XML IV. XML Schemas
Tema IV. XML IV. XML Schemas Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.Elemento raíz 3.Elementos de un Schema I. Tipo de Dato i. Tipos Complejos
Tema IV. XML III. Document Type Definitions
Tema IV. XML III. Document Type Definitions Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.Documentos XML con DTDs 3.Declaraciones i. ELEMENT ii. ATTLIST iii.entity 4.Limitaciones
Validación de XML JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES
Validación de XML JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES Objetivos Comprender qué es la validación XML y su importancia. Identificar la diferencia ente un XML bien formado y un XML válido. Entender
2. DTD. (Document Type Definition)
2. DTD (Document Type Definition) Contenidos Validación y definición de documentos DTD: Document Type Definition Declaraciones de tipo Elemento Modelos de contenido Declaraciones de lista de Atributos
X M L QUÉ ES XML. Un documento puede ser correcto a dos niveles bien formado y válido. DOCUMENTO BIEN FORMADO
X M L QUÉ ES XML XML es un metalenguaje que permite crear otros lenguajes. Proporciona una serie de reglas para que podamos definir las etiquetas y sus atributos. El conjunto de reglas de un lenguaje se
DOCUMENT TYPE DEFINITION (DTD)
DOCUMENT TYPE DEFINITION (DTD) ENSAYO POR: Viridiana Figueroa Soria Contenido QUE ES DTD?... 3 COMO SE HACE UNA DECLARACION EN EL DOCUMENTO... 3 LA FUNCION DE LOS DTD... 3 Declaraciones Tipo Elemento...
Tecnología XML. Unidad: 3 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos
Tecnología XML Unidad: 3 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Repaso XML DTD Entidades Concepto Tipos Internas Externas Espacio
LENGUAJE DE MARCAS Y SISTEMAS DE GESTIÓN DE LA INFORMACIÓN - XML
TEMA 2.- DTD (Document Type Definition) 1. DTD DTD es un estándar que nos permite definir una gramática que deben cumplir nuestros documentos XML para considerarlos válidos. Una definición DTD para n documentos
XML Schema. Definición y validación
XML Schema. Definición y validación Está claro que XML es una revolución dentro de la tecnología. Un dicho dice, lo bueno si sencillo, dos veces bueno. En concepto de XML es muy sencillo aunque poco a
XML básico. Fundamentos de la Web Semántica. Qué es XML? XML básico. Documento XML. Pablo R. Fillottrani. Entidades. Elementos y Atributos
XML básico XML básico Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre 2013 XML es un acrónimo por extended Markup Language XML es una
Fecha de edición: Septiembre 2005
XML!"#$ % #&'()* Fecha de edición: Septiembre 2005 Índice Índice...2 Lenguaje de Marcas...4 HTML...4 XML...5 Un Documento XML...6 Prologo...7 Declaración de XML...7 Comentarios...7 Instrucciones de procesamiento...7
XML Schema. Departamento de Informática Universidad de Oviedo
XML Schema Departamento de Informática Universidad de Oviedo Lenguajes de Esquemas Esquema = definición de estructura de un conjunto de documentos XML Validar = Chequear que un documento sigue un esquema
Contenido. Complemento Leyendas Fiscales. Estructura
Contenido Complemento Leyendas Fiscales 1. Estándar del Complemento Leyendas Fiscales 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Leyendas Fiscales 1. Estándar del Complemento
XML-Schema. XML-Schema. Espacios de Nombre. W3C XML Schema intenta superar las limitaciones de las DTDs con respecto a ellos
Ejemplo. Espacio de nombres con prefijo W3C XML Schema intenta superar las limitaciones de las DTDs con respecto a ellos W3C XML Schema asocia un espacio de nombres a todos los objetos (elementos, atributos,
ESQUEMAS XML. Si se consiguen especificar estas condiciones, los valores de los componentes de localización podrán ser tales como:
ESQUEMAS XML. Aunque el concepto de DTD forme parte de la Recomendación XML,hay que resaltar que una DTD se restringe a describir la estructura del documento, presentando importantes limitaciones a la
DTD (Document Type Defini0on)
DTD (Document Type Defini0on) DTD (Document Type Defini0on) Conjunto de reglas estándar que deben cumplir un documento XML de un determinado 0po Pueden ser vistos como plan0llas o como gramá0cas Representados
SINTAXIS DE LOS XML SCHEMA
SINTAXIS DE LOS XML SCHEMA Introducción Qué es XML Schema: es un conjunto de reglas que sirve para forzar la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa
DTDs Declaraciones de tipo de documentos. Departamento de Informática Universidad de Oviedo
DTDs Declaraciones de tipo de documentos Departamento de Informática Universidad de Oviedo Documento válido Se puede incluir una declaración del tipo de documento
Sistemas de Información 12/13 XML (extensible Mark-up Language)
12/13 XML (extensible Mark-up Language) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza ([email protected]) " Guión Introducción Ejemplos Documentos vs apliaciones XML Espacios
Documentación Electrónica. Tema 8: XML Schema. Índice. Índice
Tema 8: XML Schema Ofimática Avanzada (Curso 2010-2011) 2 3 1 Introducción: Motivación Las DTD tienen algunas limitaciones: Lenguaje propio para su definición No permiten definir tipos de datos No permiten
Descripción Complemento para la expedición de comprobantes fiscales por la donación en la facilidad fiscal de Pago en Especie Atributos
Contenido Complemento Pago en Especie 1. Estándar del Complemento Pago en Especie 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Pago en Especie 1. Estándar del Complemento
Capítulo 2. Introducción a XML
Capítulo 2. Introducción a XML 2.1 Introducción XML es una sintaxis universal para la descripción y el estructurado de datos independientemente de la lógica de una aplicación. Puede ser utilizado para
ALGORITMICA Y PROGRAMACION POR OBJETOS I
ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis
Procesamiento de archivos XML (Parte 1)
Procesamiento de archivos XML (Parte 1) Rubby Casallas 1 Referencias Esta presentación es un breve resumen de XML y no pretende ser exhaustiva. Para más información por favor consultar las siguientes referencias:
CONCEPTOS BÁSICOS DE ARCHIVOS XML Y ESQUEMAS DE VALIDACIÓN XSD.
LA INFORMACIÓN EN MEDIOS ELECTRÓNICOS PARA LA DIAN 10 Capítulo 2 CONCEPTOS BÁSICOS DE ARCHIVOS XML Y ESQUEMAS DE VALIDACIÓN XSD. HISTORIA DEL XML: El XML proviene de un lenguaje que inventó IBM por los
Estructura. Elementos Elemento: Intereses Diagrama. Contenido. Complemento de Intereses
Contenido Complemento de Intereses 1. Estándar del Complemento Intereses 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Intereses 1. Estándar del Complemento Intereses Elementos
XML y Bases de datos Modelado de datos XML usando DTDs
XML y Bases de datos Modelado de datos XML usando DTDs Amparo López Gaona Agosto 2008 Amparo López Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 1 / 52 Documentos bien formados
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales. Departamento de Computación. JSON Schema. Author: Gerardo Rossel
Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación JSON Schema Author: Gerardo Rossel 2016 Contents 1 Introducción 2 1.1 Estructura de JSON..........................
XML, parte 3. M. en C. Erika Vilches
XML, parte 3 M. en C. Erika Vilches Creando Document Type Definitions Qué es un DTD? Las Document Type Definitions permiten restringir el contenido de los documentos XML Especificar qué tipos de contenido
Introducción a XML. Taller de Producción de Software 2º Semestre 2008 H.Astudillo / P.Inostroza
Taller de Producción de Software 2005 Introducción a XML Taller de Producción de Software 2º Semestre 2008 H.Astudillo / P.Inostroza Indice Qué es XML? Breve Historia de XML Anatomía de un Documento XML
Contenido. Complemento Concepto de Instituciones Educativas Privadas
Contenido Complemento Concepto de Instituciones Educativas Privadas 1. Estándar del Complemento Concepto de Instituciones Educativas Privadas 2. Secuencia de Elementos a Integrar en la Cadena Original
Complemento para expresar los pagos que se realizan a residentes en el extranjero
Contenido Complemento de Pagos a extranjeros 1. Estándar del Complemento Pagos a extranjeros 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Pagos a extranjeros 1. Estándar
Descripción Complemento para incorporar información de servicios parciales de construcción de inmuebles destinados a casa habitación.
Contenido Complemento Servicios Parciales de Construcción 1. Estándar del Complemento Servicios Parciales de Construcción 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Servicios
Estructura Elementos Elemento: obrasarteantiguedades Diagrama
Contenido Complemento Enajenación de Obras de Artes Plásticas y Antigüedades 1. Estándar del Complemento Enajenación de Obras de Artes Plásticas y Antigüedades. 2. Secuencia de Elementos a Integrar en
Contenido. Complemento Donatarias
Contenido Complemento Donatarias 1. Estándar del Complemento Donatarias 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Donatarias 1. Estándar del Complemento Donatarias Elementos
Capítulo 4: XML Schema.
Capítulo 4: XML Schema. - 41 - 4. XML Schema. En este capítulo vamos a ver en qué consiste XML Schema. Ya introdujimos algunas de sus características en el capítulo anterior, y ahora profundizaremos en
XML. Historia [editar]
SESION 1: LA PÁGINA EN BLANCO 5) Ejercicio de explorar el tema. El procedimiento para desarrollar el modelo cubo es: 1. Descríbelo. cómo lo ves, sientes, hueles, tocas o saboreas? 2. Compáralo. a que se
Introducción a XML. Alberto Molina Coballes. Lenguajes de Marcas y Sistemas de Gestión de la Información
Introducción a XML Alberto Molina Coballes Lenguajes de Marcas y Sistemas de Gestión de la Información 18 de septiembre de 2012 Qué es XML? Wikipedia: Es un conjunto de reglas para codificar un documento
Validación de un XML
Validación de un XML 32 Introducción Se dice que un XML está bien formado cuando esta escrito sintácticamente de forma correcta Como se puede validar sintácticamente un XML? Document Type Definition (DTD)
Unidad 6: DTD. JJ Taboada León IES San Sebastián, Departamento de Informática LENGUAJE DE MARCAS Y SGI Curso 2011 / 2012
Unidad 6: DTD JJ Taboada León IES San Sebastián, Departamento de Informática LENGUAJE DE MARCAS Y SGI Curso 2011 / 2012 Guíon del tema Qué es un DTD? Declaración de DTD Declaración de Elementos Declaración
2.5.1. Procesamiento de documentos XML.
2.5.1. Procesamiento de documentos XML. Un analizador o parser XML es una herramienta encargada de leer documentos XML [17], poder acceder a sus elementos y comprobar si el documento es sintácticamente
Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos
Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general
Introducción a XML. Simon Pickin Ingeniería Telemática. Basado en una presentación de M. Carmen Fernández Panadero <[email protected].
Introducción a XML Simon Pickin Ingeniería Telemática Basado en una presentación de M. Carmen Fernández Panadero Introducción a XML 1 Qué es XML: Un poco de historia Problemas de HTML Extensibilidad
Descripción. Atributos. Version Descripción Uso Valor Prefijado 1.0 Tipo Base. Atributo requerido que indica la versión del complemento.
Complemento para Ingresos atribuibles a los Integrantes de un Consorcio derivados de la Contraprestación de un Contrato de Exploración o Extracción de Hidrocarburos. 1. Estándar del Ingresos atribuibles
PREGUNTAS TIPO (EXAMEN DE OFIMÁTICA AVANZADA)
PREGUNTAS TIPO (EXAMEN DE OFIMÁTICA AVANZADA) El examen constará de 2 partes. Se evaluará sobre 10 puntos y representará el 60% de la nota final de la asignatura. Para que la calificación en esta prueba
GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS
GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS A.- ASPECTOS FUNDAMENTALES DEL CÓDIGO ORIENTADO A OBJETOS MÓDULOS DE CÓDIGO: El código en Visual Basic se almacena en módulos. Hay tres tipos de módulos: de formulario,
16 Análisis sintáctico I
2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura
acceso Implementación de conceptos P.O.O. en Java Orientada a Objetos 2. Modificadores de en Java Temario
Implementación de conceptos P.O.O. en Java Temario 2. Conceptos de Programación Orientada a Objetos 1. Conceptos de P.O.O. 2. Implementación de conceptos P.O.O en Java 1. Creación de clases y objetos 2.
Programación Web Tema 2.2: Tecnologías W3C HTML & CSS
Programación Web Tema 2.2: Tecnologías W3C HTML & CSS Ramón Alcarria Miguel Ángel Manso Emerson Castañeda ETSI en Topografía, Geodesia y Cartografía - UPM Contenido Definiciones HTML CSS Tutoríal - Comenzando
Los esquemas XML (XSD) son medios de representación de estructuras mas expresivos que las DTD. Presentan las siguientes características:
Página 1 de 8 Esquemas XML (XSD) Los esquemas XML (XSD) son medios de representación de estructuras mas expresivos que las DTD. Presentan las siguientes características: Son documentos bien formados y
Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
1. Introducción a los lenguajes de marcas
1. Introducción a los lenguajes de marcas Índice Introducción Que es el marcado? Lenguajes de marcas. Qué es XML? Ventajas de XML Construyendo documentos XML Estructura jerárquica de elementos Algunas
Qué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales.
Qué es SGBD? Es un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión
Introducción a JavaScript y DOM DISERTANTE ING. RASJIDO, JOSE ALBERTO
Introducción a JavaScript y DOM DISERTANTE ING. RASJIDO, JOSE ALBERTO Agenda 2 Introducción a JavaScript Introducción a DOM Referencias Introducción a JavaScript 3 Qué es JavaScript? JavaScript es un lenguaje
DTD (Document Type Definition ) y validación.
DTD y validación Tema 3 APUNTES BÁSICOS DEL TEMA 3 DTD (Document Type Definition ) y validación. Índice de contenido 1.Introducción...2 2.Declaración/definición del DTD...3 2.1.Definición interna...3 2.2.Definición
Unidad IV. Introducción a XML
Índice 4.1. Concepto y Elementos de XML...3 Características...3 Ventajas...4 4.1.1 Elementos XML...4 Elementos...5 Elementos con contenido...5 Elementos vacíos...6 Anidamiento...6 Atributos...7 Entidades
