P. 1
XML Avanzado

XML Avanzado

|Views: 488|Likes:
Published by oliversan

More info:

Published by: oliversan on Dec 04, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

11/01/2013

pdf

text

original

XML AVANZADO

XML, DTD, SCHEMA

Introducción
XML es un lenguaje de marcas generalizado Texto Puro Sin Marcas existe sólo presentación de contenido Permiten separar el contenido de la presentación

HTML
Uno de los más exitosos lenguajes de marcas Diseñado especialmente para presentación No considera estructura de los datos en la página

consulta y transformación de documentos Los documentos o instancias están formados por elementos .XML Es un Standard No es un Standard aislado. incluye otras tecnologías de vinculación.

XML Una definición estricta Una definición orientada al Web Una Definición Orientada a Datos .

XML Dos conceptos importantes  BIEN FORMADO  VÁLIDO .

XML BIEN FORMADO Un único elemento raiz Apertura y cierre de elementos Correcta anidación de elementos Sensitivo a mayúsculas y minúsculas .

XML BIEN FORMADO <universidad> <carrera> Educación Básica </carrera> <listaAlumnos> <alumno> <nombre>Nombre de alumnos 1</nombre> </alumno> <alumno> <nombre>Nombre de alumnos 2</nombre> </alumno> </listaAlumnos> </universidad> .

XML VÁLIDO Es un documento bien formado Responde a una definición  DTD  ESQUEMA .

DTD Ejemplo Se posee una colección de películas o films Cada Film tiene un nombre y un director Los nombres de los directores son texto puro <!ELEMENT film_list (film*)> .

DTD Ejemplo * : Cero o más ocurrencias + : una o más ocurrencias ? : cero o una ocurrencia .

director+)> .Ejemplo <!ELEMENT film_list (film*)> <!ELEMENT film (name.

Se puede contener cualquier texto. en tal caso el elemento se considera mixto.Contenido Texto El contenido de texto se especifica con la palabra #PCDATA. . a excepción de elementos.

Ejemplo <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT film_list (film*)> film (name.director+)> name(#PCDATA)> director(#PCDATA)> .

. etc.#PCDATA Parsed Character Data No se trata ni de strings. no hay restricciones de número de palabras . texto. ni de números. tipo de datos.

Declaración de Atributos Ejemplo: <!ATTLIST film Identifier ID #REQUIRED> .

Declaración de Atributos <!ATTLIST film identifier ID #REQUIRED classification (G|PG|PG13|R|NC17) #IMPLIED> .

Opciones de Atributos #REQUIRED : establece que es obligatoria la incorporación del atributo en el elemento #IMPLIED : Establece que es opcional la inclusión del atributo en el elemento. .

Valores por defecto Se pueden establecer valores por defecto a los atributos Ejemplo : <!ATTLIST film identifier ID #REQUIRED classification (A|B|C) ³A´> .

fechas relacionadas) Crear un documento XML válido Probar con herramientas de validación y visualizar en browser .Ejercicios Definir DTD con libreta de notas de un alumno (considerar información de profesor jefe. notas. asignaturas.

como también.Entidades A veces es práctico poder reutilizar trozos de XML. para eso se puede utilizar el concepto de entidad. en Documentos XML . Las entidades se pueden utilizar en DTDs.

Ejemplo <!ENTITY contenido ³<firstname>Juan</firstname> <lastname>Perez</lastname>´> .

Utilización de Entidades Se utiliza el nombre de la entidad con el prefijo & y con . </client> . de final Ejemplo: <client> &contenido.

A ENTITY se le acompaña de SYSTEM para especificar la ³entidad externa´ .Modularización Se pueden modularizar las entidades en un Documento XML externo.

xml´> .Ejemplo <!ENTITY foo SYSTEM ³foo.

DTDs en Profundidad Declaración de Elementos <!ELEMENT nombre contenido> EMPTY ANY (#PCDATA) (#PCDATA|foo|bar)* (foo.bar(some|otro)+)? .

EMPTY Permite establecer el Elemento como vacío <!ELEMENT punto_cartesiano EMPTY> <punto_cartesiano/> .

ANY Demuestra un diseño mediocre Se utiliza sólo cuando necesite probar los DTDs sin tener que completar todo el contenido <!ELEMENT foo ANY> .

(#PCDATA) Ejemplo: <!ELEMENT emphasis (#PCDATA)> .

Contenido Mixto <!ELEMENT parrafo (#PCDATA|emphasis|importante)*> Se puede encontrar elementos y texto en el contenido .

´ representan secuencialidad y orden Los ³|´ significan escoger entre uno u otro elemento Se pueden hacer combinaciones .Elementos hijos solamente Las ³.

v.c)> <!ELEMENT y (a|b|c) <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT x ((y|z).b.(y|z)> y EMPTY> z EMPTY> v EMPTY> .Ejemplos: <!ELEMENT x (a.

Consideración Cuando el contenido es mixto. no es posible establecer el orden de los elementos. .

Consideraciones No es posible hacer validaciones respecto del contenido de un #PCDATA .

Declaración de Lista de Atributos <!ATTLIST nombre_elemento tipo_atributo declaracion_por_defecto> .

Tipo Atributo Tipo String  CDATA        Tipos Tokenizados ID IDREF IDREFS NMTOKEN NMTOKENS ENTITY ENTITIES .

Decalaracion_por_defecto Requerido  #REQUIRED  #IMPLIED  ³valor´ No Requerido Valor atributo por defecto Valor fijo  #FIXED ³valor´ .

. permite establecer referencia a un elemento existente.ID y IDREF ID identifica en forma única al elemento IDREF.

Ejemplo <!ELEMENT artist (name.influenced*)> <!ATTLIST artist id ID #REQUIRED> <!ELEMENT influenced EMPTY> <!ATTLIST influenced by IDREF #REQUIRED> .bio.

permite valores sin espacios entre ellos (o sea una palabra) NMTOKENS. permite varias palabras separadas por espacios .NMTOKEN y NMTOKENS NMTOKEN.

ENTITY y ENTITIES ENTITY. es similar a NTOKENS. los valores se separan por espacios . corresponde a un texto o a otra entidad previamente declarada ENTITIES.

Ejemplo <!NOTATION jpeg PUBLIC ³JPEG´> <!ENTITY unicornio SYSTEM http://www.jpg NDATA jpeg> <!ELEMENT animalmitologico (#PCDATA)> <!ATTLIST animalmitologico image ENTITY #REQUIRED> .thefactory.com/unicorn.

Entidades Entidades Parseables (en doc xml) <!ENTITY reemplazo ³texto de reemplazo´> Entidades no Parseables <!ENTITY % texto ³#PCDATA´> .

NameSpaces Espacio de Nombres Introducción .

identificados por una referencia URI. los URI sólo se utilizan para que el nombre sea único . que se utilizan en documentos XML como tipos de elemento y nombres de atributo Un URI es un identificador global único No se trata de utilizar un URI como enlace.Definición Un espacio de nombres XML es un conjunto de nombres. ni tiene por qué tener contenido.

pero con diferentes significados y espacios semánticos <pais nombre=³Chile´> <capital>Santiago</capital> </pais> <inversion> <capital>1000000</capital> </inversion> .Definición Permiten eliminar ambigüedades y solucionar problemas que se producen en documentos En un mismo documento existen palabras con el mismo nombre.

Problema <inversiones> <pais nombre=³Chile´> <capital>Santiago</capital> <capital>1000000</capital> </pais> </inversiones> .

Solución <bolsa:inversiones xmlns:bolsa=³http://www.bolsacomercio.cl´ xmlns:geografia=³http://www.com´> <geografia:pais geografia:nombre=³Chile´> <geografia:capital>Santiago</geografia:capital > <bolsa:capital>1000000</bolsa:capital> </geografia:pais> </bolsa:inversiones> .geograf.

donde el nombre del atributo sea xmlns ("xml namespace") y el valor puede ser una cadena cualquiera. Para definir un espacio de nombres al que pertenece un elemento. aunque por convención suelen ser URLs. es necesario añadir un atributo a la definición de elemento.Uso Los espacios de nombres se aplican tanto a atributos como a elementos. .

</track> <track number=³2´>...Otro ejemplo <?xml version=³1...</track> </cd> </cd_review> ..0´?> <cd_review> <author>Clark Evans</author> <score points=³8´ out of=³10´/> Este album refleja.bla bla bla... <cd id=³987987´> <title xml:space=³preserve´>Undone</title> <author>Lamb</author> <producer>Moby</producer> <year>2000</year> <track number=³1´>. <author>Lamb</author> es uno ...

¿Cómo utilizarlos? Incluir namespaces en sus documentos es muy sencillo 1. Luego utilizar los namespaces en el documento . Declarar el namespace y hacer uso de nombres calificados 2.

df/cdrev´ xmlns:cd=³http://www.cdreviews.0´?> <review:cd_reviews xmlns:review=³http://www.Ejemplo Paso 1 <?xml version=³1.net.net .cdreviews .df/cd/´> .

<cd:cd id=³786876´> <cd:title xml:space=³preserve´>Undone</cd:title> <cd:producer>Moby</cd:producer> <cd:year>2000</cd:year> <cd:track number=³1´>..df/cd/´> <review:author>Matthew Jhonson</review:author> <review:score points=³8´ out_of=³10´/> Este es un album que..net.cdreviews.</cd:track> <cd:track number=³2´>....cdreviews..Ejemplo Paso 2 <?xml version=³1.0´ standalone=³yes´?> <review:cd_reviews xmlns:review=³http://www.</cd:track> </cd:cd> </review:cd_reviews> ..<cd:author>Lamb</cd:author> es uno de .df/cdrev´ xmlns:cd=³http://www....net.

Declaración xmlns:prefijo=³nombre´ Prefijo corresponde a cualquier conjunto de caracteres exceptuando el ³:´ El nombre debe ser una URI válida .

thefactory .Ejemplos <someElement xmlns:panda=³http://www.com/panda´> <!± aqui pueden ir todos los subs elementos que utilicen el prefijo panda </someElement> .

w3.0´ id=³FAA-XLink2HTML´> .Ejemplos 2 <xsl:transform xmlns:xsl=http://www.org/1999/ XSL/Transform version=³1.

Nombres Calificados Los nombres calificados pueden tomar dos formas  Una cadena de caracteres que contiene un prefijo y un nombre (denominado parte local) separado por el ³:´. xslt:x ó foo:y  Como parte local myAtrribute .

XML Schema Definición de Documentos .

Schema Al igual que las DTDs. Indican tipos de datos. pero de una forma más precisa. número mínimo y máximo de ocurrencias y otras características más específicas. describen el contenido y la estructura. .

Schema Schema vence las limitaciones de los DTDs Los DTD no pueden ser representados via DOM. Al ser una expresión definida en XML pueden ser leidos vía DOM e inclusive ser parseados a través de eventos .

por ejemplo no sólo NMTOKEN . #PCDATA o CDATA. permite definir estructuras más complejas que en los DTDs Se puede definir tipos de datos específicos.Schema Schema. .

Schema DOM XML Schema. se puede manipular de manera sencilla via VBScript o en Páginas ASP o JSP. u otra alternativa de scripting Provee la capacidad de establecer elementos con relaciones .

Schema Documentos son escritos en XML Mejoran considerablemente la curva de aprendizaje. ya que deben estar bien conformados .

es un mecanismo para construir tipos de datos complejos.Schema Los elementos se pueden definir con tipos de datos específicos XML Schema. declarando dentro de los elementos otros tipos .

Schema « ejemplo <xsd:schema xmlns:xsd="http://www.org/2000/10/XMLSchema"> <xsd:complexType name="tvguide"> <xsd:sequence> <xsd:element name="program" type="Show" minOccurs="0" maxOccurs="0"/> <xsd:element name="slot" type="TVSlot" maxOccurs="0"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Show"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/> <xsd:element name="producer" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="show-id" type="xsd:ID"/> <xsd:attribute name="first-aired" type="xsd:date"/> </xsd:complexType> <xsd:complexType name="TVSlot"> <xsd:sequence> <xsd:element name="day" type="xsd:date"/> <xsd:element name="begin" type="xsd:time"/> <xsd:element name="end" type="xsd:time"/> </xsd:sequence> <xsd:attribute name="show" type="xsd:IDREF"/> </xsd:complexType> </xsd:schema> .w3.

Schema Tipos  Los tipos en XML Schema están divididos en dos categorías Simples Complejos .

Schema Tipos simples  Sólo pueden contener caracteres  No pueden contener elementos .

Schema Tipos simples <xsd:element name=³Adobe-Key´> <xsd:simpleType> <xsd:restriction base=³xsd:string´> <xsd:pattern value=³\d{7}[A-Z]{3}\d{3}/> </xsd:restriction> </xsd:simpleType> </xsd:element> .

carácter y atributos .Schema Tipos complejos  Pueden contener un conjunto y combinaciones de contenido con elementos.

Schema Tipo complejo <xsd:complexType name´Show´> <xsd:sequence> <xsd:element name=³name´ type =³xsd:string´/> <xsd:element name=³description´ type=³xsd:string´/> <xsd:attribute name=³show-id´ type=³xsd:ID´/> <xsd:attribute name=³first-aired´ type=³xsd:date´/> </xsd:sequence> </xsd:complexType> .

Schema Declaración de Schema <xsd:schema xmlns:xsd=³http://www.org/1999/XMLSchema´/> .w3.

Schema Vacío de DTD cubierto por XSML Schema  <!ELEMENT sw-key (#PCDATA)>  <sw-key>2222-IAG-32123</sw-key> .

Schema XML Schema tipos delimitados <xsd:element name=³vanilla-sw-key´ type=³xsd:string´/> <xsd:element name=³vanilla-sw-key´ type=³xsd:string´/> <xsd:pattern value=³/d{4}-[A-Z]{3}-/d{5}´/> </xsd:element> .

Schema Expresiones regulares  Se utilizan en la propiedad value del elemento pattern .

aax.bx.aax.x A+x ax.aaax (a|b)+x ax. bax.Schema Ejemplo expresiones regulares      A*x x.ax. abx.aaax A?x ax. aaax (ab)[2]x Ababx .aax.

Cualquier caracter exceptuando salto de línea {}n repetición .Schema Expresiones regulares         * cero o más ocurrencias + 1 o más ocurrencias () agrupación subexpresión | uno u otro [ ] intervalo [^ ] no considera intervalo .

Schema Expresiones regulares  \s un carácter de espacio en blanco (espacio o tabulación)  \S cualquier carácter no espacio  \d cualquier carácter numérico  \D cualquier carácter que no sea dígito  \w cualquier carácter alfanumérico (letra número o carácter de subrayado) .

cl .Schema Expresiones regulares.\S\.\S+  Algún sitio web w{3}\. ejemplo  Validación de mail \S+@\S+\.

es posible establecer valores específicos o rangos de valores para un tipo definido .Schema Especificación de restricciones  A través del elemento restriction más otros sub-elementos.

Schema Restriction ± Min y Max <xsd:simpleType name=³javaShort´> <xsd:restriction base=³xsd:integer´> <xsd:minInclusive value=³-32767´/> <xsd:maxEnclusive value=³32769´/> </xsd:restriction> </xsd:simpleType> .

Schema Restriction .precision <xsd:simpleType name=³decimalStature> <xsd:restriction base=³xsd:decimal´> <xsd:precision value=³2´/> </xsd:restriction> </xsd:simpleType> .

Schema Restriction .enumeration <xsd:simpleType name=³europeanCountry´> <xsd:restriction base=³xsd:string´> <xsd:enumeration value=³Lithuania´/> <xsd:enumeration value=³Germany´/> <xsd:enumeration value=³France´/> </xsd:restriction> </xsd:simpleType> .

Schema Tipos anónimos  Con el fin de no estar declarando cada elemento que se establecerá en la instancia de un documento xml. se puede definir tipos generales para ser especificados en elementos en particular .

Schema Tipos anónimos <xsd:complexType name=³basicMovie´> <xsd:sequence> <xsd:element name=³title´ type=³xsd:string´> <xsd:element name=³director´ type=³xsd:string´> <xsd:element name=³release´ type=³xsd:date´> </xsd:sequence> <xsd:attribute name=³release´ type=³xsd:date´/> </xsd:complexType> <xsd:element name=³movie´ type=³basicMovie´/> .

.Schema Especificando Opciones y Sequencias en Modelos de Contenido  Con el propósito de establecer restricciones en contenido de un elemento complejo se puede hacer uso de especificación de sequencias y opciones.

Schema Elemento .choice  Es equivalente al contenido en DTD de (A|B|C)  Espefica que sólo uno de sus hijos puede figurar en el contenido .

Schema Elemento choice <xsd:complexType name=³foo´> <xsd:choice> <xsd:element name=³A´ type=³AsType´/> <xsd:element name=³B´ type=³BsType´/> <xsd:element name=³C´ type=³CsType´/> </xsd:choice> </xsd:complexType> .

Schema Contenido mixto <xsd:element name=³paragraph´> <xsd:complexType mixed=³true´> <xsd:choice> <xsd:element name=³technical-review´ type=³xsd:string´/> <xsd:element name=³review´ type=³xsd:string´/> </xsd:xhoice> </xsd:complexType> </xsd:element> .

Schema Cardinalidades  Las cardinalidades se pueden especificar por minOccurs y maxOccurs <xsd:complexType> <xsd:sequence> <xsd:atribute name=³track´ type=³xsd:string´ minOccurs=³1´ maxOccurs=³*´/> </xsd:sequence> </xsd:complexType> .

Schema Reutilización de Atributos elementos ± Grupos Nombrados  Es muy similar a declarar entidades en DTD y luego reutilizarlas .

sequence u all.Schema Grupo nombrado  No es más que un nombre asignado a un conjunto de declaraciones choice. .

Schema Grupo nombrado <xsd:group name=³products´> <xsd:choice> <xsd:element name=³soap´ type=³SoapType´/> <xsd:element name=³fruit´ type=³FruitType´/> <xsd:choice> <xsd:element name=³heineken´ type=³BeerType´/> <xsd:element name=³quilmes´ type=³BeerType´/> <xsd:element name=³budweiser´ type=³BeerType´/> </xsd:choice> </xsd:choice> </xsd:group> .

Schema Aplicación de Grupo Nombrado <xsd:complexType name=³grocerieListdraft´> <xsd:group ref=³products´/> <xsd:complexType> .

Schema Anotaciones  A través del tag annotation y documentation se pueden agregar notas de diseño o textos explicativos para un elemento o tipo definido .

Anotaciones <xsd:complexType name=³grocerieList-draft´> <xsd:annotation> <xsd:documentation> Reusing a list of beers</xsd:documentation> </xsd:annotation> <xsd:group ref=³products´/> <xsd:complexType> .Schema Ejemplo .

org/2000/10/X MLSchema-instance" xsi:noNamespaceSchemaLocation="D:\boo ks.xsd"> <title/> <author/> </book> .Schema Creando Una Instancia XML <book xmlns:xsi="http://www.w3.

Schema Hacer schema de DTD construido en ejercicio anterior .

XHTML .

0 (Borrador) supondrá un cambio muy importante respecto de las anteriores versiones de XHTML.0 es una adaptación de HTML 4.1 pretende modularizar XHTML.01 al lenguaje XML  XHTML 1.  XHTML 2. .XHTML Introducción  XHTML 1.

XHTML Características  Versión más estricta y limpia de HTML  Objetivo remplazar a HTML  HTML limitantes de uso con herramientas basadas en XML  XHTML extiende HTML  XHTML Combina HTML diseño Combina XML describir datos Más estricto .

SVG  Mathematical Markup Language  Synchronized Multimedia Integration Language  Scalable Vector Graphics .XHTML Necesidad  Nuevos dispositivos  Interpretación independiente del dispositivo de donde se accede Incluye otros lenguajes como MathMl. SMIL.

.XHTML Mathematical Markup Language  Aplicación XML para describir notación matemática y capturar estructura y contenido.

XHTML Synchronized Multimedia Integration Language  Lenguage basado en XML que permite a los autores escribir presentaciones multimedia interactivas .

XHTML Scalable Vector Graphics  Lenguaje para describir gráficos en dos dimensiones y aplicaciones gráficas en XML .

XHTML Documento XHTML  Los documentos deben estar bien formados  Los nombres de atributos y elementos deben ir en minúsculas  Los elementos que no estén vacios necesitan etiquetas de cierre  Los valores de las etiquetas deben ir siempre entre comillas .

XHTML Origen  XHTML es muy similar al lenguaje HTML.  XHTML adaptación HTML al lenguaje XML.  HTML descendiente de SGML  XML descendiente de SGML  XHTML descendiente XML .

XHTML Origen .

El valor de los atributos de las etiquetas se podían indicar con y sin comillas (³).XHTML Sintaxis XHTML  HTML original era muy permisivo en su sintaxis Etiquetas podían escribirse en mayúsculas. Orden en el que se abrían y cerraban las etiquetas no era importante. . en minúsculas e incluso combinando mayúsculas y minúsculas.

XHTML Resultado flexibilidad HTML  Puede parecer un aspecto positivo  Resultado final son páginas con código HTML desordenado. difícil de mantener y muy poco profesional. XHTML soluciona problemas añadiendo normas en forma de escribir las etiquetas y atributos. .

XHTML 5 normas  Las etiquetas se tienen que cerrar de acuerdo Ejemplo correcto (XHTML): <p>Este es un párrafo con <a>un enlace</a></p> Ejemplo incorrecto (HTML): <p>Este es un párrafo con <a>un enlace</p></a> .

com">un enlace</a></p> Ejemplo incorrecto (HTML): <P>Este es un párrafo con <A HREF="http://www.XHTML 5 normas  Nombres de etiquetas y atributos se escriben en minúsculas: Ejemplo correcto (XHTML): <p>Este es un párrafo con <a href="http://www.com">un enlace</A></P> .google.google.

google.google.com">un enlace</a></p> Ejemplo incorrecto (HTML): <p>Este es un párrafo con <a href=http://www.com>un enlace</a></p> .XHTML 5 normas  El valor de los atributos siempre se encierra con comillas: Ejemplo correcto (XHTML): <p>Este es un párrafo con <a href="http://www.

...</dl> Ejemplo incorrecto (HTML): <dl compact>.XHTML 5 normas  Los atributos no se pueden comprimir: (tipo de atributos no habitual) Ejemplo correcto (XHTML): <dl compact="compact">..</dl> .

XHTML 5 normas  Todas las etiquetas deben cerrarse siempre: Ejemplo correcto (XHTML): <br/> Ejemplo incorrecto (HTML): <br> .

</body> </html> ..org/TR/xhtml1/DTD/xhtml1-transitional.</title> .0 Transitional//EN" "http://www.w3.dtd"> <html xmlns="http://www...org/1999/xhtml" lang="es" xml:lang="es"> <head> <title>...w3. </head> <body> ..XHTML Elementos y etiquetas imprescindibles en un XHTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

w3.XHTML Doctype puede ser también <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> .0 Strict//EN" "http://www.

SOAP Simple Object Access Protocol Protocolo simple de acceso a objetos Estándar diseñado para mejorar la interoperatividad entre plataformas utilizando WEB y XML .

SOAP Evolución  Desde Sitios estáticos  Hasta Contenido personalizado para servicios a usuarios  Para estos servicios entran en juego un sinnúmero de componentes en distintos computadores Sistemas Distribuidos .

SOAP Los sistemas distribuidos utilizan dos modelos de comunicación:  Paso de mensajes  Mensajes de petición/respuesta .

SOAP Paso de mensajes  Permite que los mensajes se envíen en cualquier momento (asincrono).  La aplicación que envía el mensaje continúa una vez que lo ha enviado .

SOAP Modelo petición/respuesta  La petición y la respuesta están emparejados  Sistema síncrono  La aplicación envía la petición y espera recibir respuesta antes de continuar  Ejemplo llamada de procedimiento remoto (RPC) de un objeto de un computador a otro .

SOAP Modelo petición/respuesta  Se usa habitualmente para permitir que los componentes de distintos servidores puedan comunicarse usando RPC .

se requiere saber de antemano el estándar utilizado .SOAP Modelo petición/respuesta  Algunos estándares DCOM (Distributed Component Object Model) Microsoft IIOP (Internet inter-orb protocol) ORB (Object request broker) CORBA Estos tienen el problema de ser poco natural .

se requiere saber de antemano el estándar utilizado No hay inconveniente si se trabaja en sistema interno Complicación ocurre cuando se trabaja en Internet o Extranet . CORBA Estos tienen el problema de ser poco natural .SOAP Modelo petición/respuesta  Algunos estándares DCOM .

SOAP SOAP y MODELO PETICIÓN RESPUESTA  SOAP no introduce conceptos nuevos  Está construido sobre la Tecnología existente  Independiente de la plataforma  Utiliza http como transporte .

SOAP SOAP y MODELO PETICIÓN RESPUESTA  http puede atravesar servidores de seguridad  Medio más sencillo para transportar mensajes a cualquier computador  Es probable que SOAP evolucione a otros protocolos en el futuro .

SOAP Paquete SOAP  Contiene información que se puede utilizar para invocar a un método  La especificación SOAP no define la forma de llamar al método  No maneja: La recolección de basura distribuida Seguridad de tipos .

SOAP Paquete SOAP  ¿Qué permite? PASO DE PARÁMETROS Y COMANDOS ENTRE CLIENTES Y SERVIDORES HTTP En forma independiente de la plataforma En forma independiente de aplicaciones en el cliente y el servidor .

SOAP Paquete SOAP  Los parámetros y los comandos se codifican usando XML .

SOAP SOAP y ENCABEZADO HTTP  HTTP Dos tipos de encabezados Encabezados de petición Encabezados de respuesta  Al visitar una URL el navegador crea una petición y la envía al servidor WEB  Los servidores de HTTP generan una respuesta cuando reciben las peticiones de los clientes .

SOAP SOAP y ENCABEZADO HTTP  Cuando se crea un mensaje SOAP se agrega información adicional a mensajes estándar .

1 HOST: www.com Content-Type: text/xml Content-Length: nnnn SOAPAction: ³urn:sitioweb.SOAP SOAP.com:PO#UpdatePO´ .sitioweb. CABECERA DE PETICIÓN  Mensaje típico HTTP en petición SOAP que se envía a servidor WEB POST /Order HTTP/1.

versión producto GET: obtener información.1 Método petición. URI petición. POST: pasar información cliente a servidor POST se puede enviar cualquier tipo de información GET sólo cierto tipo de información SE puede usar MPOST Al trabajar con POST el URI corresponde al método que se va a invocar .SOAP SOAP. CABECERA DE PETICIÓN POST /Order HTTP/1.

SOAP SOAP.com URL del servidor al que se envía la petición . CABECERA DE PETICIÓN HOST: www.sitioweb.

SOAP SOAP. carga útil es XML . CABECERA DE PETICIÓN Content-Type: text/xml Tipo de contenido.

SOAP SOAP. CABECERA DE PETICIÓN Content-Length: nnnn Tamaño de la carga útil en byte .

com:PO#UpdatePO´ Objetivo de la petición SOAP Espacio de nombres seguido por el nombre del método . CABECERA DE PETICIÓN SOAPAction: ³urn:sitioweb.SOAP SOAP.

CABECERA DE PETICIÓN POST /Order HTTP/1.1 HOST: www.sitioweb.com Content-Type: text/xml Content-Length: nnnn SOAPAction: ³urn:sitioweb.com:PO#Updat ePO´ SE ESTÁ LLAMANDO AL MÉTODO UPDATEPO del OBJETO Order .SOAP SOAP.

CABECERA DE RESPUESTA 200 OK Content-Type: text/plain Content-length: nnnn Contenido .SOAP SOAP.

SOAP SOAP. CABECERA DE RESPUESTA 200 OK Código de estado y mensaje asociado (OK) Content-Type: text/plain Content-length: nnnn .

SOAP MPOST  Limita mensajes que llegan a través de un servidor de seguridad o servidor proxy  Se define utilizando HTTP Extension Framework .

1 de SOAP .BIZTALK SOAP Interoperabilidad entre plataformas WEB y XML Framework extensión de especificación 1.

BIZTALK Proporciona estructura para construir aplicaciones que muevan datos contenidos en documento soap a través de fronteras Frontera Punto en el que la información pasa de un sistema a otro .

BIZTALK Frontera  Ejemplo Dos empresas asociadas pueden tener sus propios sistemas para procesar pedidos Paso de pedido de un sistema a otro Pedido pasa la frontera .

BIZTALK Frontera  Puede corresponder también a movimientos entre plataformas con Sistemas Operativos diferentes  BISTALK Estructura para el intercambio entre plataformas diferentes .

BIZTALK BIZTALK. empaquetar. empaquetar. publicar e intercambiar información estructurada y no estructurada a través de fronteras con XML Especificar. publicar e intercambiar reglas de negocio  Necesidad de aplicaciones de software intermedio para comunicación en frontera  Necesidad de estándar que proporcione detección de errores y acuse recibo de información entre fronteras . permite afrontar  Necesidad de estándar flexible y fácil de utilizar para:   Especificar.

BIZTALK
BIZTALK no es estándar W3C El estándar es XML Objetivo de BIZTALK facilitar implementación de XML utilizando estructura estandarizada

BIZTALK
Documentos BIZTALK 
Es un mensaje SOAP  Se compone de dos secciones
Cabecera del documento BIZTALK (información acerca del documento) Cuerpo (contiene la información real de la transacción de negocio)

WEB Services
Origen del problema que da origen a WEB SERVICE 
Problemas de arquitectura internet (inclusive en programación Cliente/Servidor tradicional)  Programación monolítica

WEB Services
Programación Monolítica 
Sitios con colección de servicios distintos relacionados  Combinación de servicios diferentes tras una única interface de usuario. Por ejemplo en un sitio único es posible: Revisar clientes Revisar facturas Revisar contabilidad

con frecuencia. « .WEB Services Aunque el modelo actual es funcional presenta los siguientes problemas  Para crear una aplicación monolítica es necesario utilizar tiempo y recursos  Orientado. a plataforma específica  Difícil de extender  Cada proyecto nuevo obliga a un proyecto de integración.

WEB Services 
«  La integración de sitios WEB se limitan a link en las páginas  No es posible utilizar unidades lógicas de programación (una función de negocio) en otras aplicaciones  Extracción de una parte de una aplicación WEB (por ejemplo el valor de la UF de un sitio financiero) Obliga a explorar el sitio web completo

WEB Services
Servicios WEB 
Permiten la misma evolución de COM  Pero la lógica de programación, en este caso, está EN UN SERVIDOR WEB  Integración puede ser con cualquier tipo de aplicación

WEB SERVICES
Diferencia Servicio WEB/COM 
COM estándar binario específico de la plataforma  Servicio WEB basado en estándar abierto  El estándar abierto permite interoperabilidad con otras plataformas

WEB SERVICES
XML 
  

Estándar raíz que define un servicio WEB XML se basa en texto Permite pasar por canales http normales Llamadas DCOM pueden ser abortadas por cortafuegos

WEB SERVICES Identificar nichos de acción  La institución necesita saber si un alumno está egresado de enseñanza media o no MINEDUC pone a disposición un servicio web que reciba como parámetro un rut y devuelva la condición académica .

WEB SERVICES Identificar nichos de acción  Una corredora de bolsa necesita saber el valor bolsa de una acción La bolsa de comercio provee de un servicio web que recibe como parámetro el instrumento y devuelve el valor por acción .

WEB SERVICES Identificar nichos de acción  Un sistema de gestión requiere información de sistemas auxiliares que están en plataformas distintas Cada sistema auxiliar crea un servicio web que recibe por ejemplo una cuenta auxiliar y devuelve el detalle de sus movimientos .

WEB SERVICES Identificar nichos de acción  Una empresa de pago de servicios necesita saber el monto a pagar por una cuenta Las empresas de servicios crean un servicio web que devuelve el monto a pagar una vez que se envía como parámetro el identificador de la cuenta .

WEB SERVICES Identificar nichos de acción  Una consultora necesita saber si una persona es o no profesional Las Universidades proveen un servicio web que permite saber si una persona es o no titulada de dicha casa de estudios .

principalmente WSDL y SOAP .WEB SERVICES Los servicios WEB se diseñan sobre la base de estándares abiertos Su arquitectura debe ser genérica Se basa en estándares.

También se utiliza http get y http post  Protocolo sobre el que se lleva a cabo la comunicación. parámetros y valores de retorno SOAP HTTP  Modo de codificar información (como los valores de datos) antes de enviarla a o desde un servicio web. Mensajes SOAP se llevan sobre canales http .WEB SERVICES WSDL  Indica al cliente los métodos en un servicio web.

Registro de negocio que lista información sobre las empresas. servicio web que proporcionan y URL correspondientes . Contiene vínculos a los servicios web. se puede utilizar para una lista dinámica de servicios web  UDDI Concepto nuevo.WEB SERVICES DISCO  Estándar de descubrimiento (discovery).

HTTP POST) .WEB SERVICES WDSL  Lenguaje de descripción de servicio WEB  Estándar basado en XML  Especifica cómo se puede interactuar con un servicio web  Incluye detalle de parámetros y valores de retorno  Incluye protocolo utilizado para transmisión por internet (SOAP. HTTP GET.

com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.org/" xmlns:wsdl="http://schemas.<s:element name="obtienePromedioResponse"> .WEB SERVICES WDSL <?xml version="1.xmlsoap.xmlsoap.xmlsoap.<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.0" encoding="utf-8" ?> .org/wsdl/mime/" xmlns:tns="http://tempuri.<s:element name="obtienePromedio"> .org/2001/XMLSchema" xmlns:soap12="http://schemas.<wsdl:types> .<s:complexType> .org/"> .<s:complexType> .org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.w3.org/wsdl/http/" targetNamespace="http://tempuri.org/wsdl/soap12/" xmlns:http="http://schemas.org/wsdl/soap/" xmlns:tm="http://microsoft.<s:sequence> <s:element minOccurs="1" maxOccurs="1" name="n1" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="n2" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="n3" type="s:int" /> </s:sequence> </s:complexType> </s:element> .org/" xmlns:s="http://www.<wsdl:definitions xmlns:soap="http://schemas.org/wsdl/"> .xmlsoap.<s:sequence> <s:element minOccurs="1" maxOccurs="1" name="obtienePromedioResult" type="s:double" /> </s:sequence> </s:complexType> </s:element> </s:schema> </wsdl:types> .xmlsoap.

<wsdl:operation name="obtienePromedio"> <wsdl:input message="tns:obtienePromedioSoapIn" /> <wsdl:output message="tns:obtienePromedioSoapOut" /> </wsdl:operation> </wsdl:portType> .<wsdl:message name="obtienePromedioSoapIn"> <wsdl:part name="parameters" element="tns:obtienePromedio" /> </wsdl:message> .<wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> .org/obtienePromedio" style="document" /> .org/soap/http" /> .<wsdl:operation name="obtienePromedio"> <soap:operation soapAction="http://tempuri.<wsdl:binding name="MiServicioSoap" type="tns:MiServicioSoap"> <soap:binding transport="http://schemas.<wsdl:portType name="MiServicioSoap"> .WEB SERVICES « .<wsdl:input> <soap:body use="literal" /> </wsdl:input> .xmlsoap.<wsdl:message name="obtienePromedioSoapOut"> <wsdl:part name="parameters" element="tns:obtienePromedioResponse" /> </wsdl:message> .

<wsdl:port name="MiServicioSoap12" binding="tns:MiServicioSoap12"> <soap12:address location="http://localhost:1029/WebSite15/MiServicio.org/obtienePromedio" style="document" /> .asmx" /> </wsdl:port> .asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions> .WEB SERVICES « .<wsdl:operation name="obtienePromedio"> <soap12:operation soapAction="http://tempuri.<wsdl:service name="MiServicio"> .<wsdl:input> <soap12:body use="literal" /> </wsdl:input> .<wsdl:port name="MiServicioSoap" binding="tns:MiServicioSoap"> <soap:address location="http://localhost:1029/WebSite15/MiServicio.<wsdl:binding name="MiServicioSoap12" type="tns:MiServicioSoap"> <soap12:binding transport="http://schemas.xmlsoap.<wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> .org/soap/http" /> .

WEB SERVICES Los servicios web proveen el potencial para simplificar el desarrollo WEB Los servicios web siguen el patrón de programación OO Todo servicio web ES UNA CLASE que ofrece un servicio Un cliente puede crear una instancia de un servicio web y ser utilizada como cualquier clase local .

WEB SERVICES . por ejemplo. provee de las herramientas necesarias para hacer todo el proceso de interoperabilidad casi transparente La clase WebService provee la funcionalidad necesaria El servicio web no tiene interfaz gráfica. de todos modos Visual Studio provee la posibilidad de probar la funcionalidad .NET.NET .

asmx  Clase de servicio web que herede de System.WEB SERVICES . Este método indica las funciones y subrutinas que se DEJARÁN DIPONIBLES EN INTERNET .WebServive  Un método de servicio web marcado con System.Services.Services.NET Elementos de un servicio WEB  Archivo de texto .Web.WebMethodAttribu tte.Web.

WEB SERVICES .NET
Un ejemplo Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols <WebService(Namespace:="http://tempuri.org/")> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Public Class MiServicio Inherits System.Web.Services.WebService <WebMethod()> _ Public Function obtienePromedio(ByVal n1 As Integer, ByVal n2 As Integer, ByVal n3 As Integer) As Double Return (n1 + n2 + n3) / 3 End Function End Class

WEB Services
Un pequeño repaso de objetos

OBJETOS
Orientación a Objetos 
Dos conceptos importantes
Clase Objeto 

Clase Definición de objetos  Objetos Instancias de clases

OBJETOS
Conceptualización 
Un objeto es cualquier cosa abstracta o real  Caracterizada por determinados atributos  Características pueden ser manipuladas a través de un sinnúmero de mensajes o métodos, éstos determinan el comportamiento del objeto.  Desde un punto de vista práctico, software, un objeto es una colección de procedimientos y datos.

OBJETOS 
Objeto de negocio

WEB Services
DEMO CREACIÓN DE UN WEB SERVICE

XPath
XML Tecnologías Asociadas

XPath Es un lenguaje no XML Es un lenguaje de consulta Cumple un rol fundamental en tecnologías asociadas como XPointer. Xlink y XSL .

XPath Es considerada una de las especificaciones fundamentales de XML Es una especificación para aplicaciones relacionadas con XML .

XPath Objetivo:  La meta de XPath es definir un lenguaje que permita direccionar partes de documentos XML .

Componentes del lenguaje Direccionar a partes de XML Dar soporte a funciones y expresiones de lenguaje .

Contexto y Modelo de Datos raíz elemento elemento atributo text() elemento .

con el símbolo ³/´ También se puede apreciar sintaxis similar a una subclase en C++ con el símbolo :: .Localidades Las localidades en XPath son similares a como se especifican las rutas en directorios.

ancestro..XPATH ‡Un documento XML es procesado por un analizador (o parser) construyendo un árbol de nodos. que contienen solo texto. que se diversifica a lo largo de los elementos que cuelgan de él y acaba en nodos hoja. ‡Este árbol comienza con un elemento raíz.. comentarios. hijo. ‡De hecho. . los "operadores" de que consta este lenguaje recuerda la terminología que se utiliza a la hora de hablar de árboles en informática: raíz. etc. descendiente. intrucciones de proceso o incluso que están vacíos y solo tienen atributos ‡La forma en que XPath selecciona partes del documento XML se basa precisamente en la representación arbórea que se genera del documento.

..es">abejilla</enlace> que surca el espacio en busca de bichejos para comer..es">mariposa</enlace> que surca el cielo en busca de libaciones. </parrafo> <parrafo destacar="si"> Ella.<libro> <titulo>Dos por tres calles</titulo> <autor>Josefa Santos</autor> <capitulo num="1"> La primera calle <parrafo> Era una sombría noche del mes de agosto.. </parrafo> </capitulo> <apendice num="a" public="si"> La tercera calle <parrafo> Era una densa noche del mes de diciembre....enlace. cándida cual <enlace href="http://www. inocente cual <enlace href="http://www.abejilla. inocente cual <enlace href="http://www.</parrafo> <parrafo> Ella. </parrafo> </capitulo> <capitulo num="2" public="si"> La segunda calle <parrafo>Era una obscura noche del mes de septiembre.. </parrafo> <parrafo> Ella....pajarillo. </parrafo> </apendice> </libro> .es">abejilla</enlace> que surca el viento en busca del néctar de las flores..

.. cual inocente abeja. +---parrafo | +---(texto)Ella.. cual inocente mariposa.. .../ | +---libro | +---titulo | | | +---(texto)Dos por tres calles | +---autor | | | +---(texto)Josefa Santos | +---capitulo [num=1] | | | +---(texto)La primera calle | | | +---parrafo | | | | | +---(texto)Era una sombría noche . | +---parrafo | | | +---(texto)Ella. | +---capitulo [num=2] | +---(texto)La segunda calle | +---parrafo | | | +---(texto)Era una obscura noche ...

no es el elemento raíz ‡Nodo Elemento: Cualquier elemento de un documento XML se puede convertir en un elemento dentro del árbol ‡Nodo texto: Caracteres que no están marcados por alguna etiqueta ‡Nodo atributo: Consta de un nombre y un valor ‡Nodo comentario e instrucciones de proceso .XPATH ‡TIPO DE NODOS ‡Nodo Raíz /. Hace referencia al nodo raíz del árbol.

XPATH ‡ Conceptos Básicos ‡ Expresiones ‡ Una instrucción xpath se denomina expresión ‡ Por ejemplo /libro/capitulo/párrafo « ‡ Todos los elementos párrafo que cuelgan de un elemento capítulo y que a su vez cuelga de un elemento libro ‡ Nodo contexto ‡ Una expresión tiene un punto de partida llamado nodo contexto ‡ ‡ Es como el directorio actual Predicados ‡ Permiten restringir la selección ‡ Por ejemplo: /libro/capitulo[@num="1"]/parrafo .

<curso> <alumno><nombre>alumno1</nombre> <asignatura id = "mat"> <nota>5 </nota> </asignatura> <asignatura id = "cas"> <nota>3 </nota> </asignatura> <asignatura id = "bio"> <nota>6 </nota> </asignatura> </alumno> <alumno><nombre>alumno2</nombre> <asignatura id = "mat"> <nota>4 </nota> </asignatura> </alumno> <alumno><nombre>alumno3</nombre> <asignatura id = "mat"> <nota>5 </nota> </asignatura> <asignatura id = "cas"> <nota>3 </nota> </asignatura> <asignatura id = "bio"> <nota>7 </nota> </asignatura> </alumno> </curso> .

.../nombre/text() ./nombre/text() /curso//asignatura[nota=7]/.XPATH ‡ Qué hacen las siguientes expresiones /curso//asignatura[nota<4]/./asignatura/@id /curso//asignatura[nota<4]/.

XPOINTER .

o. Al contenido de elementos en cualquier parte del documento XML Se pueden realizar vínculos a secciones de texto Seleccionar atributos o elementos en particular .XPOINTER Proporciona acceso a los valores de atributos.

XPOINTER Al contrario de XPATH. XPOINTER permite seleccionar información que está en más de un conjunto de nodos Proporciona extensiones a XPATH .

entre dos puntos Conjunto de Ubicación : Lista ordenada de nodos.Conceptos básicos Sub-Recurso : Se refiere a una porción de un documento XML. esta porción puede ser un elemento al cual se apunta Punto : Corresponde a una posición en el Documento XML Rango:Identificación de una selección de información contigua de un documento XML.puntos y/o rangos producidos por una expresión Xpointer .

Formas de XPointer Expresiones Completas  xpointer(id(³aParticularId´))  xpointer(id(³bru´) xpointer(id(³haha´)) Nombres desnudos  aleph  xpointer(id(³aleph´)) Secuencias de niños (child)  /1/2  historicalDates/6/4 .

3) by Patrice Bonhomme XLink/XPointer test by W.el .Herramientas Parser for XPointer Language(0. Eliot Kimber XPath/XPointer tester by Fabio Arciniegas Psgml-xpointer.

XSLT Extensible Stylesheet .

Introducción Lenguaje de Transformación de contenido XML Permite transformar archivos fuentes a distintos formatos XML. PDF. WML. DHTML. . etc. XHTML. HTML.

</p> </biography> </person> </people> .Ejemplo 2 <person> <name xml:lang="en"> <firstname>Anna</firstname> <midinitial>M</midinitial> <lastname>Mozart</lastname> </name> <borndate day="25" month="dec" year="1720"/> <deaddate day="3" month="jul" year="1778"/> <biography> <p>Mother of Johann Chrysostom Wolfgang Gottlieb.

Lo Básico <xsl:template match=³item´> <xsl:text>Saw an item!</xsl:text> </xsl:template> .

Transformación X Y Z Fuente XML XSLT Procesador ~XT~ Aa Y bb Resultado No necesariamente XML XSLT Stylesheet XML conforme a XSLT X aa Z bb W cc .

XSL Ejemplo <?xml version="1.xsl"?> <universidad> <alumno> <nombre>alumno1 </nombre> </alumno> <alumno> <nombre>alumno2 </nombre> </alumno> </universidad> .0"?> <?xml-stylesheet type="text/xsl" href="Alumno1.

org/TR/WD-xsl"> <xsl:template match="/"> <H2>Universidad</H2> <xsl:for-each select="universidad/alumno"> <SPAN STYLE="font-style:italic">Nombre: </SPAN> <xsl:value-of select="nombre"/><BR /> </xsl:for-each> </xsl:template> </xsl:stylesheet> .XSL Ejemplo <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.

XSL Ejemplo .

0"?> <?xml-stylesheet type="text/xsl" href="alumno2.XSL Ejemplo <?xml version="1.xsl"?> <universidad> <carrera> <nombre_carrera>Infor</nombre_carrera> <alumno> <nombre>alumno1 </nombre> </alumno> <alumno> <nombre>alumno2 </nombre> </alumno> </carrera> <carrera> <nombre_carrera>Medic</nombre_carrera> <alumno> <nombre>alumno2 </nombre> </alumno> <alumno> <nombre>alumno3 </nombre> </alumno> </carrera> </universidad> .

File Name: XslDemo02.org/TR/WD-xsl"> <xsl:template match="/"> <H2>Universidad</H2> <xsl:for-each select="universidad/carrera"> <SPAN STYLE="font-style:italic">Nombre: </SPAN> <xsl:value-of select="nombre_carrera"/><BR /> </xsl:for-each> </xsl:template> </xsl:stylesheet> .w3.xsl --> <xsl:stylesheet xmlns:xsl="http://www.0"?> <!-.XSL Ejemplo <?xml version="1.

XSL Ejemplo .

XSLT Avanzado y XSL:FO .

XSLT Avanzado y XSL:FO Extensible Stylesheet Language Formatting Objects .

Presentaciones Optimizadas A través de XSL se pueden obtener documentos mucho más llamativos y adecuados para formatos de impresión de alta calidad. como por ejemplo PDF .

denominado XFO .Historia W3c working group estuvo trabajando en dos especificaciones La primera XTL para de finir un lenguaje común de transformación La segunda un DTD para dar formato a documentos XML.

en el lado del Servidor .XTL Es utilizado principalmente para transformar documentos XML en documentos HTML.

XFO? Todas las propiedades de CSS1/CSS2 során utilizables W3C Common Formatting model Pensado para formatos de impresión Nueva funcionalidad = CSS3? .

Transformando a PDF Con XFO es posible exportar a formatos como PDF Se debe apoyar en XSL .

XML to XSL XML: <Heading1>The headline</Heading1> XSL: <xsl:template match="Heading1"> <H1> <xsl:applytemplates/> </H1> </xsl:template> La Salida sería: <H1>The headline</H1> .

3em" margin-top="1.3em" margin-top="1.5em" marginbottom="0.4em"> The headline </fo:block> .XSL + XFO <xsl:template match="Heading1"> <fo:block fontsize="1.5em" margin-bottom="0.4em"> <xsl:apply-templates/> </fo:block> </xsl:template> Salida sería: <fo:block font-size="1.

XSL:FO y FOP trabajan juntos para formar documentos en formato PDF .FOP? FOP corresponde a la herramienta que es capaz de traducir el languaje XSL:FO y transformarlo al formato de presentaciñon adecuado.

3 de Xerces XML Parser Versión 1.0.7.2 .0.12.Herramientas FOP 0.1 Versión1.0 de Xalan stylesheet Processor Para Servlets se puede utilizar Cocoon Versión 1.

w3.org/1999/XSL/Format"> Corresponde a la definición de un nuevo namespace dentro de un documento catalogado como XSL .0" xmlns:xsl="http://www.Inclusión en Documentos XSL <xsl:stylesheet version="1.w3.org/1999/XSL/Transform" xmlns:fo="http://www.

Para Servlet Cocoon <xsl:processing-instruction name=³cocoonformat´>type=³text/xslfo´</xsl:proce ssing-instruction> .

Check List de XSL:FO Definir el header de Style sheet Definir el layout ( Se refiere a margenes. pies de página... etc .formatos de página) Procesar los detalles del documento .

Definición de Header <xsl:tenplate match=³/´> <xsl:apply-templates select=³sonnet´/> </xsl:template> .

Definición del Layout -1 <fo:layout-master-set> <fo:simple-page-master page-master-name=´main´ margin-top=´75pt´ margin-bottom=³75pt´ margin-left=³75pt´ margin-right=³75pt´> <fo:regin-body margin-bottom=³75pt´/> </fo:simple-page-master> <fo:layout-master-set> .

Definición de Layout -2 <fo:page-sequence> <fo:sequence-specification> <fo:sequence-specifier-alternating page-master-first=³main´ page-master-odd=³main´ page-master-even=³main´/> </fo:sequence-specification> </fo:page-sequence> .

fo:flow Indica que todos los elementos contenidos son formateados como unidad <fo:flow> <xsl:apply-templates select=³title´/> <xsl:apply-templates select=³author´/> .

fo:block El bloque define las caracteristicas de formateo de los elementos que contiene <xsl:templates match=³title´> <fo:block font-size=³24pt´ line-height=³27pt´ text-aling-last=³start´ space-before.optimum=³24pt´> <xsl:apply-templates/> </fo:block> </xsl:templates> .

optimum=³6pt´> <fo:table-column column-width=³30pt´/> <fo:table-column column-width=³450pt´/> <fo:table-body> <xsl:apply-templates select=³lines/line´/> .Creación de Tablas -1 <fo:table space-before.

Creación de Tablas -2 <xsl:template match=³line[1]|line[3]´> <fo:table-row space-before.´/></fo:block> </fo:table-cell> </fo:table-row> </xsl:template> .optimum=³3pt´> <fo:table-cell> <fo:block font-size=³14pt´ color=³gray´>A</fo:block> </fo:table-cell> <fo:table-cell> <fo:block color=³green´><xsl:value-of select=³.

fo Sonnet.xsl ±out sonnet.Process ±in sonnet.apache.of contendra la definición de objetos para formar el documento PDF .xslt.xml ±xsl sonnet-rhyme-scheme.Transformando el documento java org.xalan.

FOP Aplicado (Finalizando.apps.fo sonnet.CommandLine sonnet.apache.) Java org..pdf ..fop.

BASE DE DATOS y XML .

BASE DE DATOS y XML Los motores de datos utilizan XML como un tipo de datos Las consultas a base de datos pueden descargar datos en formato XML en forma directa Del mismo modo pueden realizar carga de documentos XML en forma directa .

BASE DE DATOS y XML Analizar  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Select * from contratista transportes uno transportes efe transportes trio transportes cuatrito transportes quina transportes del seis transportes seven transportes ochito transportes del nueve transportes ten transportes dos unos transportes después del 11 transportes después del 12 transportes antes del 15 transportista final .

BASE DATOS y XML Analizar  select * from contratista for xml raw <row codcont="1" nombrecont="transportes uno <row codcont="2" nombrecont="transportes efe <row codcont="3" nombrecont="transportes trio <row codcont="4" nombrecont="transportes cuatrito <row codcont="5" nombrecont="transportes quina <row codcont="6" nombrecont="transportes del seis <row codcont="7" nombrecont="transportes seven <row codcont="8" nombrecont="transportes ochito <row codcont="9" nombrecont="transportes del nueve <row codcont="10" nombrecont="transportes ten <row codcont="11" nombrecont="transportes dos unos <row codcont="12" nombrecont="transportes después del 11 <row codcont="13" nombrecont="transportes después del 12 <row codcont="14" nombrecont="transportes antes del 15 <row codcont="15" nombrecont="transportista final " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> .

BASE DE DATOS y XML Analizar select * from contratista for xml auto <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista codcont="1" nombrecont="transportes uno codcont="2" nombrecont="transportes efe codcont="3" nombrecont="transportes trio codcont="4" nombrecont="transportes cuatrito codcont="5" nombrecont="transportes quina codcont="6" nombrecont="transportes del seis codcont="7" nombrecont="transportes seven codcont="8" nombrecont="transportes ochito codcont="9" nombrecont="transportes del nueve codcont="10" nombrecont="transportes ten codcont="11" nombrecont="transportes dos unos codcont="12" nombrecont="transportes después del 11 codcont="13" nombrecont="transportes después del 12 codcont="14" nombrecont="transportes antes del 15 codcont="15" nombrecont="transportista final " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> .

BASE DE DATOS y XML Analizar select * from contratista for xml auto. type <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista <contratista codcont="1" nombrecont="transportes uno codcont="2" nombrecont="transportes efe codcont="3" nombrecont="transportes trio codcont="4" nombrecont="transportes cuatrito codcont="5" nombrecont="transportes quina codcont="6" nombrecont="transportes del seis codcont="7" nombrecont="transportes seven codcont="8" nombrecont="transportes ochito codcont="9" nombrecont="transportes del nueve codcont="10" nombrecont="transportes ten codcont="11" nombrecont="transportes dos unos codcont="12" nombrecont="transportes después del 11 codcont="13" nombrecont="transportes después del 12 codcont="14" nombrecont="transportes antes del 15 codcont="15" nombrecont="transportista final " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> .

BASE DE DATOS y XML Analizar select * from contratista for xml auto. type. root ('raiz') <raiz> <contratista codcont="1" nombrecont="transportes uno <contratista codcont="2" nombrecont="transportes efe <contratista codcont="3" nombrecont="transportes trio <contratista codcont="4" nombrecont="transportes cuatrito <contratista codcont="5" nombrecont="transportes quina <contratista codcont="6" nombrecont="transportes del seis <contratista codcont="7" nombrecont="transportes seven <contratista codcont="8" nombrecont="transportes ochito <contratista codcont="9" nombrecont="transportes del nueve <contratista codcont="10" nombrecont="transportes ten <contratista codcont="11" nombrecont="transportes dos unos <contratista codcont="12" nombrecont="transportes después del 11 <contratista codcont="13" nombrecont="transportes después del 12 <contratista codcont="14" nombrecont="transportes antes del 15 <contratista codcont="15" nombrecont="transportista final </raiz> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> " /> .

query('/raiz/contratista[@codcont="2"]') . type. root ('raiz')) select @x.BASE DE DATOS y XML Analizar DECLARE @x XML SET @x = ( select * from contratista for xml auto.

BASE DE DATOS y XML Resultado <contratista codcont="2" nombrecont="transportes efe " /> .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->