Beruflich Dokumente
Kultur Dokumente
Campus: Tlalpan
Podemos identificar tres fases imprescindibles para crear documentos XML de cierta
complejidad:
1. Especificación de los requisitos.
2. Diseño de las etiquetas
3. Marcado de los documentos.
1. Especificación de requisitos
Al igual que ocurre con la mayoría de los objetos que fabricamos, o en la creación de
programas informáticos, los documentos XML parten de una especificación de requisitos.
2. El Diseño
El diseño es la siguiente fase, se encarga de definir cuáles son las marcas por incluir, sus
nombres, la información que contienen, la relación entre las marcas, etc.
Normalmente para abordar un problema es conveniente dividirlo en fases más sencillas que
permitan resolverlo, esta frase cobra un especial significado si la resolución del problema no
es trivial o admite varias soluciones. En esta sección se verán algunos pasos y consejos útiles
a la hora de realizar el diseño de documentos XML.
Conviene utilizar una norma consistente para la realización del marcado y mantenerla a lo
largo de todo el documento. En el ejemplo que nos ocupa, todos los nombres se han escrito
con minúsculas y sin acentuar, y todos son además palabras completas.
Después de conocer qué marcas básicas hay que añadir, seguiría intentar relacionarlas y
agruparlas de la manera más coherente posible. También es posible que aparezcan nuevos
tipos de datos, que aparecen como necesarios para agrupar/separar componentes.
En este estado del proceso de creación resulta interesante la realización de un árbol que
muestre la relación entre todos los tipos de datos, y que ayude a descubrir nuevas relaciones
o una distribución distinta.
El siguiente paso es pensar si estos "tipos de datos" pueden ser elementos o atributos. Se
descartan como atributos aquellas piezas que puedan contener subelementos (ahora o en el
futuro), así como aquellas que contengan textos más largos de una frase o demasiada
información como para guardarla con atributos elegantemente.
JAXB aporta una forma sencilla de asociar un esquema XML a su representación en código
Java. Esto hace simple el manejo de datos XML desde Java, sin necesidad de conocer mucho
acerca de XML.
Los pasos para realizar la asociación entre un documento XML y un objeto Java con JAXB
son los siguientes:
La propiedad display
Al escribir una hoja de estilo para un documento XML hay que tener en cuenta que los
navegadores no aplican generalmente la hoja de estilo predeterminada (salvo que se utilicen
etiquetas html asociándolas al espacio de nombres del xhtml como en los ejemplos
anteriores), así que al escribir una hoja de estilo para un documento XML hay que definir
propiedades que normalmente no se suelen definir.
La más importante es la propiedad display, que establece el modo de visualización del
elemento.
Los valores posibles de la propiedad display son: none, block, compact, inline, inline-
block, inline-table, list-item, marker, run-in, table, table-caption, table-cell, table-
column, table-column-group, table-footer-group, table-header-group, table-row y table-row-
group.
Los modos de visualización más utilizados son:
Base de datos XML se utiliza para almacenar la gran cantidad de información en formato
XML. Como el uso de XML está aumentando en todos los campos, es necesario tener el
lugar asegurado para almacenar los documentos XML. El dato almacenado en la base de
datos se puede consultar mediante XQuery, serializada y exportar a formato deseado.
XML- enabled
<?xml version="1.0"?>
<contact-info>
<contact1>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</contact1>
<contact2>
<name>Manisha Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 789-4567</phone>
</contact2>
</contact-info>
el XML sirve para describir información y el HTML sirve para darle formato y presentarla a
través de un navegador. O sea que el XML no es ni será nunca un reemplazo del HTML sino
un complemento que sirve para manejar la información separada del formato.
El lenguaje XHTML surgió ante los problemas de compatibilidad que surgían cuando se usaba
un documento HTML en distintas plataformas. La especificación XHTML viene a ser una
reformulación del HTML como aplicación XML. En realidad, es una reformulación de las tres
definiciones de tipo de documento HTML 4.0 como aplicaciones XML. Su finalidad es que
pueda ser usado como lenguaje de contenidos que sea a su vez conforme a XML y, si se siguen
algunas sencillas directrices, funciona en agentes de usuario (esto es, las aplicaciones que leen
y procesan documentos) conformes con HTML4.0.
Utilizar XHTML en lugar de HTML, xhtml presenta las siguientes mejoras:
Los documentos XHTML son conformes a XML. Como tales, son fácilmente
visualizados, editados y validados con herramientas XML estándar.
Los documentos XHTML pueden escribirse para que funcionen igual o mejor que lo
hacían antes tanto en las aplicaciones de usuario conformes a HTML 4.0 como en las
nuevas aplicaciones conformes a XHTML 1.0.
Los documentos XHTML pueden usar aplicaciones (por ejemplo, scripts y applets)
que se basen ya sea en el Modelo del Objeto Documento de HTML o XML[DOM].
Validación de un XML
DTD
Una DTD es un documento que define la estructura de un documento XML: los elementos,
atributos, entidades, notaciones, etc, que pueden aparecer, el orden y el número de veces que
pueden aparecer, cuáles pueden ser hijos de cuáles, etc. El procesador XML utiliza la DTD
para verificar si un documento es válido, es decir, si el documento cumple las reglas del
DTD.
La DTD que debe utilizar el procesador XML para validar el documento XML se indica
mediante la etiqueta DOCTYPE. La DTD puede estar incluida en el propio documento, ser
un documento externo o combinarse ambas.
<!DOCTYPE nombre [
... declaraciones ...
]>
La DTD puede estar en un documento externo y, si sólo va a ser utilizada por una
única aplicación, la sintaxis es la siguiente:
"nombre" es el nombre del tipo de documento XML, que debe coincidir con el
nombre del elemento raíz del documento XML.
"uri" es el camino (absoluto o relativo) hasta la DTD.
"fpi" es un indentificador público formal (Formal Public Identifier).
Declaraciones
Las DTDs describen la estructura de los documentos XML mediante declaraciones. Hay
cuatro tipos de declaraciones:
Declaraciones de entidades
Declaraciones de notaciones
Declaraciones de elementos, que indican los elementos permitidos en un
documento y su contenido (que puede ser simplemente texto u otros
elementos).
Declaraciones de atributos, que indican los atributos permitidos en cada
elemento y el tipo o valores permitidos de cada elemento.
XSD
Declara una estructura con nombre que puede tener datos de instancia en documentos
XML. La estructura de un elemento XSD puede ser simple o compleja. Los elementos se
pueden declarar de forma global o local.
Los atributos globales son componentes de nivel superior que están contenidos en un
esquema XML. Deben ser exclusivos dentro del esquema contenedor y se pueden
reutilizar (hacer referencia a ellos) en otros elementos, tipos o grupos. Los atributos
locales se definen dentro de elementos o tipos. Están en el ámbito de las definiciones de
sus padres y no se pueden volver a utilizar en otros elementos o tipos.
Ejemplo
Esquema de una orden de compra (PO.XSD)
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Purchase order schema for Example.com.
Copyright 2000 Example.com. All rights reserved.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="Items"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
<xsd:complexType name="USAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="zip" type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="country" type="xsd:NMTOKEN"
fixed="US"/>
</xsd:complexType>
<xsd:complexType name="Items">
<xsd:sequence>
<xsd:element name="item" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productName" type="xsd:string"/>
<xsd:element name="quantity">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxExclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="USPrice" type="xsd:decimal"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="partNum" type="SKU" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Extensiones y usos de XML: Cloud Computing
Excel
Tipo de archivo XML Extensión
Libro .xlsx
Libro habilitado para macros .xlsm
Plantilla .xltx
Plantilla habilitada para macros .xltm
Libro binario no XML .xlsb
Complemento habilitado para macros .xlam
Investigué sobre las extensiones de XML, pero me arrojaba varias terminaciones tales
como las que agregué arriba, y fuera de eso encontré solo proveedores vendiendo
servicios de Cloud Computing, de igual manera encontré documentos de IBM, patentes
de uso entre CC y XML pero no fui capaz de comprender a lo que se referían.
Conclusiones
En general, XML es un tema muy extenso, con un nivel alto de dificultad para
comprender aquellas funciones que posee, aunque como todo lenguaje es posible de
entender si se mantiene en práctica.
Referencias Bibliográficas
http://www.mundolinux.info/validacion-de-documentos-xml.htm
http://www.madrid.org/arquitecturasw/desarrollos-
atlas/integracion/tratamiento-de-xml
https://sites.google.com/site/todoxmldtd/referencia/referencia-de-xml/08-
diseno-de-documentos-xml
https://www.tutorialspoint.com/es/xml/xml_tree_structure.htm
https://sites.google.com/site/todoxmldtd/aorendemos-con-
ejemplos/ejemplos-de-xml/2-xml-tiene-una-estructura-de-arbol
http://www.mclibre.org/consultar/xml/lecciones/xml_css.html
http://www.hipertexto.info/documentos/xhtml.htm
http://www.mclibre.org/consultar/xml/lecciones/xml_dtd.html
https://jorgesanchez.net/manuales/xml/fundamentos-xml.html
https://www.ibm.com/support/knowledgecenter/es/SSZJPZ_11.5.0/com.ibm.s
wg.im.iis.metadata.common.doc/topics/c_xml_schema_definition_assets.html
https://www.fing.edu.uy/tecnoinf/mvd/cursos/xml/middlexml.htm