Template by niusheng11

VIEWS: 5 PAGES: 57

									Día XML en
Microsoft Tech·Ed 99
Sesión 1: Sintaxis XML
Beneficios clave de XML
   Definir sus propias etiquetas
   El poder para separar:
       Contenido: objetos de datos e
        información
       Formato: el sabor del día de los medios
        de salida
       Proceso: lógica empresarial
        (scripting, verbos)
   Elimina la necesidad de definir
    sintaxis
¿Qué es XML?

    He aquí lo que sabemos...
HTML: Lo bueno
   Portabilidad
   Curva reducida de aprendizaje
   Económico (editores gratuitos,
    visualizadores gratuitos)
   Algunas estructuras especializadas
   Gran base de información existente
   Las interfaces de exploradores son
    económicas, fáciles de usar y
    poderosas
   El hipertexto realmente funciona
HTML: Los problemas
   Principal queja del usuario:
     “¡Pero no puedo hacer (llenar el
    espacio en blanco)!”
   ¿La razón?
       Es sólo un conjunto fijo de etiquetas
       Muy pocos utilizan la especificación
        oficial como una guía
       Los exploradores contienen gran
        cantidad de “código bozo”
SGML: Lo bueno
   Portabilidad
   Estándar ISO estable
   Muchos productos disponibles,
    desde gratuitos hasta muy caros
   Conjunto de reglas, no un conjunto
    fijo de etiquetas
   La modularidad/reutilización está
    incorporada
   Separa estructura del formato
SGML: Los problemas
   Principal queja del usuario:
    “¡SGML es demasiado complicado y
    cuesta mucho!”
   ¿Las razones?
       El análisis de requerimientos es caro
       La conversión de datos heredados es
        cara
       Los consultores son caros
       Es difícil trabajar con los “propietarios”
Necesitamos algo nuevo
   Portátil
   Económico, veloz y fácil de usar
       Para crear, procesar y presentar
        información
   Ampliable (de forma estándar)
       Un conjunto de reglas, no un conjunto fijo
        de etiquetas
   Compatible con HTML
       Una ruta fácil desde los documentos
        existentes
   Compatible con SGML
       Potencia sin una complejidad innecesaria
Necesitamos XML
XML es…
   Lenguaje de marcación ampliable
       Un metalenguaje de marcación
       Una sintaxis utilizada para crear lenguajes
        declaratorios
   Una recomendación técnica de W3C
       Norma adquirida por W3C, no de proveedores
   Portátil, simple, fácil de aprender
       Herramientas fáciles de escribir (traducción:
        herramientas más económicas)
       Optimizadas para uso en Internet
   Gratuito
XML no es…
   “XML es un lenguaje de marcación”
       No. Es una norma que especifica una sintaxis
        para crear lenguajes de marcación
   “HTML es un subconjunto de XML”
       No, pero HTML es un lenguaje de marcación
        que se puede expresar en la sintaxis de XML
   “XML significa: Lenguaje de
    comercialización excelente (Excellent
    Marketing Language)”
       Quizás. Sabemos que “XML” en un boletín de
        prensa incrementa el interés
   “XML = 1040”
       ?
Dos posibilidades
   Bien formado
       Las etiquetas de inicio y fin
        corresponden
       Los elementos vacíos tienen una forma
        especial
       No hay elementos sobrepuestos
       Los atributos están “bien citados”
   Válido
       Bien formado…más
       Se vincula a una estructura predefinida
        determinada por un esquema
El documento bien
formado
Un documento XML es...
   Una colección de piezas analizadas y
    no analizadas, llamadas “entidades”
   Texto y marcación en Unicode
   Válido, o al menos bien formado

   Además de las normas, XML
    representa...
…Una jerarquía adecuada
                           factura



número        cliente                     elementos




     nombre         No. cuenta       elemento       elemento




     descripción        cantidad      descripción     cantidad
Creación de documentos
bien formados
   Un solo elemento raíz
   Los elementos en una raíz ocurren de forma
    secuencial o anidados
       O una combinación de ambos
   Los elementos deben formar una jerarquía adecuada
       No deben sobreponerse
   Todos los elementos deben tener una etiqueta de
    inicio y fin
       Iniciar con <Element_Name>
       Terminar con </Element_Name>
       Los elementos vacíos inician y terminan con
        <Element_Name/>
Nota sobre los nombres
   XML es sensible a mayúsculas y
    minúsculas
       <Para>, <PARA>, <para> y <PaRa> marcan
        elementos diferentes
   Los nombres de elementos
       Deben comenzar con una letra, un guión bajo
        (_), o dos puntos (:)
       Pueden incluir letras, dígitos, puntos (.),
        guiones (-), guiones bajos (_) o dos puntos (:)
       “XML” y todas sus variaciones están reservadas
La declaración XML
   Dice: “¡Soy un documento XML!”
   Piezas específicas (secciones 2.8, 2.9):
    <?xml XML PI abrir
    version="1.0" Información de versión (Req.)
    encoding="" Codificación de caracteres
    standalone="" Doc. independiente (sí o no)
    ?> XML PI cerrar
   Cada entidad XML que no esté en formato
    UTF-8 ó UTF-16 debe comenzar con una
    declaración de codificación XML
Ejemplos bien formados
<Welcome>Hello, World!</Welcome>

<?xml version=“1.0”?>
<Configuration>
  <Printer>
    <Name>HP LaserJet 5SI</Name>
    <Driver>hplj5si.dll</Driver>
    <Location>\\Brewmeister\HP5SI</Location>
    <Options>
      <EnvelopeFeeder/>
      <Scanner/>
    </Options>
  </Printer>
</Configuration>
Ejemplo mal formado

  <?xml version=1.0?>
<Section>
  <title>Mikie’s Guide to Happiness
  <para>It’s not easy, but it’s
fun.</Para>
  <Section>
    <title>The Fun Part</title
    <para>Doing things you like to do, and
    getting paid for them, is fun.</para>
  </Section>
</Section>
Atributos
   Propiedades (Adjetivos)
   Llevan información acerca de un
    elemento
       Información acerca de gráficos
       Fechas, nombres, puntos de verificación
   Aparecen en la etiqueta de inicio, en la
    forma:
        <ElementName AttributeName="value"> o
        <ElementName AttributeName='value'>
No se pueden tener
demasiados ejemplos
 <line/>

 <?xml version="1.0"?>
 <Section created='19971217'>
   <title>The Fun Part</title>
   <para status=“draft”>Doing things you
   like to do, and getting paid
   <graphic width=“80” name='bucks'/>
   for them, is fun.</para>
 </Section>
Pero, ¿qué pasa si…?
   Queremos que todos en nuestros proceso
    utilicen las mismas etiquetas de la misma
    forma
   Guía de estilo para estructuras
       Lista de etiquetas
       Relaciones entre etiquetas
       Valores predeterminados para los atributos
       Tipos de datos estándar no XML
   No hay nada nuevo
       Las guías de estilo se han usado por años
       Así que, ¿qué tal una guía de estilo procesable
        en la máquina?
XML válido
Un conjunto de reglas:
DTD de XML
   Una DTD (Definición del tipo de documento)
    le permite:
       Definir un conjunto específico de etiquetas con
        relaciones específicas entre sí
       Definir valores predeterminados para los
        atributos
       Definir texto adicional y entidades binarias,
        junto con sus anotaciones asociadas
       Indicar el elemento de inicio (raíz)
   Una DTD es una forma correcta (pero no la
    única) de controlar la creación de datos
La DTD
<!--        ELEM NAME   CONTENT MODEL                          -->
<!ELEMENT   weather     (city+)                                  >
<!ELEMENT   city        (name, report)                           >
<!ELEMENT   name        (#PCDATA)                                >
<!ELEMENT   report      (high, low, precip?)                     >
<!ELEMENT   high        (#PCDATA)                                >
<!ELEMENT   low         (#PCDATA)                                >
<!ELEMENT   precip      EMPTY                                    >
<!ATTLIST   precip      day_total      CDATA           #REQUIRED
                        type           (rain | snow)   “rain”
                        force          (light | heavy) #IMPLIED >
Espacio de nombre
   Permite a los desarrolladores mezclar
    datos descritos por esquemas
    múltiples en una instancia de
    documento XML
   Los componentes del esquema son
    reutilizables
   Califica a los elementos de manera
    exclusiva
Ejemplo de espacio de
nombre
<ec:Order xmlns:ec="http://ecommerce.org/schema/”
          xmlns:dsig="http://digitalSignatures.org/schema/"
          xmlns:dt="urn:uuid:C2F41010-65B3-11d1-A29F-00AA00C14882/">
    <dsig:dsig>
        <ec:Manifest>80183589575795589189518915</ec:Manifest>
        <ec:Sig href="http://XYX/Joe@company.com"/>
    </dsig:dsig>
    <ec:SoldTo>
        <ec:LastName>Layman</ec:LastName><ec:FirstName>Andrew</ec:FirstName>
    </ec:SoldTo>
    <ec:SoldOn dt:baseType="date.iso8601">1997-03-17</ec:SoldOn>
    <ec:Item Price="5.95">
        <bk:BOOK xmlns:bk="http://books.org/schema/”
             TITLE="Number, the Language of Science"
             AUTHOR="Dantzig, Tobias"/>
    </ec:Item>
    <ec:Item Price="12.95">
        <bk:BOOK xmlns:bk="http://books.org/schema/”
             TITLE="Introduction to Objectivist Epistemology"
             AUTHOR="Rand, Ayn"/>
    </ec:Item>
</ec:Order>
 Esquemas XML
<?xml version ="1.0"?>
<Schema name="Weather Report"
           xmlns:dt="urn:schemas-microsoft-com:xml-data">
          <ElementType name="weather" content="eltOnly" order="seq">
                     <element type="city" minOccurs="1" maxOccurs="*"/>
          </ElementType>
          <ElementType name="city" content="eltOnly" order="seq">
                     <element type="name"/>
                     <element type="report"/>
          </ElementType>
          <ElementType name="name" content="textOnly"/>
          <ElementType name="report" content="eltOnly" order="seq">
                     <element type="high"/>
                     <element type="low"/>
                     <element type="precip" minOccurs="0" maxOccurs="1"/>
          </ElementType>
          <ElementType name="high" content="textOnly"/>
          <ElementType name="low" content="textOnly" dt:type="r4"/>
          <ElementType name="precip" content="textOnly" dt:type="r4">
                     <AttributeType name="day_total" dt:type="r4" required="yes"/>
                     <AttributeType name="type" dt:type="enumeration" dt:values="rain snow"
                               default="rain"/>
                     <AttributeType name="force" dt:type="enumeration" dt:values="light heavy"/>
                     <attribute type="day_total"/>
                     <attribute type="type"/>
                     <attribute type="force"/>
          </ElementType>
</Schema>
Demo:
Construir un esquema XML
               Analizar documentos
                estructurados
               Encontrar información
                oculta
               Definir información y
                crear una
                representación de
                estructura (DTD),
                legible por la máquina
            Código en
            http://Xmlu.com/events/TechEd99
Sesión 2: XML en el
explorador
HTML, DHTML, CSS, XML,
DOM
             XSL

 XML                          DHTML
            Script


                               CSS
        Unión de datos, CSS
Islas de datos XML
   XML en una página HTML
   Puede contener fragmentos XML bien
    formados
   Invoca una instancia del procesador XML
   Se puede identificar con ID
   Ejemplo:
    <XML id=“author-info”>
     <author>
       <name>Brian Travis</name>
       <affiliation>Architag University</affiliation>
     </author>
    </XML>
Islas de datos XML
 <XML id="AuthorInfo">
 <author>
     <name>Brian Travis</name>
     <affiliation>Architag University</affiliation>
 </author>
 </XML>
               Isla de datos XML
                                                          Aplicación
                                                              de
   Crea
                                                          explorador
 instancia
                                    Objeto XML            •Unión de
                                                          datos
        Procesador
           XML                                            • Scripts
                       Expone                         A   • CSS
                                                          • XSL
Demo:
Exploración nativa de XML
                 Ver el documento
                  XML en un
                  explorador
                     article.xml




             Código en
             http://Xmlu.com/events/TechEd99
Demo: XML y CSS
                Crear una hoja en
                 estilo de cascada
                Asignar un
                 documento XML
                 en el explorador
                    article.xml
                    article.css


           Código en
           http://Xmlu.com/events/TechEd99
Relacional a XML
   Crear una “vista lógica” de la base de
    datos
   Las relaciones son hijos
   Elementos y atributos
Demo:
Crear una fuente XML
                       Abrir la base de
                        datos
                           class.mdb
                       Leer las tablas
                           Estudiantes
                           Habilidades
                       Reconocer las
                        relaciones
                       Crear una fuente
                        XML
                           GetStudents.asp
                       Enviar al explorador
         Código en
         http://Xmlu.com/events/TechEd99
Demo:
Unión de datos XML
                Leer la fuente XML
                 en una isla de
                 datos XML
                    GetStudents.asp
                Unir los datos XML
                 a la tabla HTML
                    StudentReport.html


            Código en
            http://Xmlu.com/events/TechEd99
XSL, el lenguaje de hoja
de estilo ampliable
XSL
   Lenguaje de hoja de estilo ampliable
   Proporciona semántica de presentación para XML
       Correlaciona los elementos XML en lenguaje HTML o
        cualquier otro lenguaje de formateo
   Soporte funcional para CSS, de manera que
    posibilita la traducción fácil y precisa
       Soporta la funcionalidad CSS, de manera que posibilita la
        traducción fácil y precisa
   Basado en DSSSL, pero divergente
       Usa la sintaxis XML (no DSSSL)
   El anteproyecto de trabajo salió en julio, 1998
   Versión más reciente, diciembre 16, 1998
Pequeño examen
December 3, 1997
<I>December 3, 1997</I>
<birthday>December 3, 1997</birthday>
Ejemplo
Entrada:
<birthday>December 3, 1997</birthday>

Hoja de estilo:
<xsl:stylesheet xmlns...>
  <xsl:template match="birthday">
    <fo:block font-style=“italic” color=“green">
      <xsl:apply-templates/>
    </fo:block>
  </xsl:template>
</xsl:stylesheet>

Salida:
From XSL Processor for HTML:
<P STYLE="font-style:italic;color:green">December 3, 1997</P>
Desde un procesador XSL para RTF:
{\c6\f12\i December 3, 1997\par}
<birthday>December 3, 1997</birthday>

     Arbol fuente
      (su XML)
                                                    MS XSL
                                    MS XSL




                                                       Salida (x)
                                          XSL
       Hoja de
        estilo                          Transfor-
      xmlns:xsl                          mador
                                                     <P STYLE="font-
                                                     style:italic;color:green">Decembe
                                                     r 3, 1997</P>




<xsl:template match="birthday">
  <P STYLE=“font-style:italic;color:green;”>
    <xsl:apply-templates/>
  </P>
</xsl:template>
Ejemplo
Entrada:
<birthday>December 3, 1997</birthday>

Hoja de estilo:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="birthday">
    <P STYLE=“font-style:italic;color:green;”>
      <xsl:apply-templates/>
    </P>
  </xsl:template>
  <xsl:template match="textnode()">
    <xsl:get-value/>
  </xsl:template>
</xsl:stylesheet>
     <P
Salida: STYLE="font-style:italic;color:green">December   3, 1997</P>
a
Demo: MS XSL
                Crear un
                 documento bien
                 formado
                    article.xml
                Crear una hoja de
                 estilo para la
                 salida HTML
                    article.xsl
                Ejecutar en el
                 explorador
           Código en
           http://Xmlu.com/events/TechEd99
Sesión 3: Programar
contra XML: El modelo
de objeto de documento
Demo: XSL en el servidor


                  Aplicar hoja de estilo
                   en el servidor
                      article.asp
                      article.xsl
                      article.xml
                  Entregar HTML en el
                   explorador


           Código en
           http://Xmlu.com/events/TechEd99
El modelo canónico
   Forma estándar para crear XML a
    partir de bases de datos relacionales
   Las filas son elementos
   Celdas que son atributos
   Muchas IDs
XML relacional a canónico
              <Students
                  ID="79"
                  RevNum="0"
                  Name="John Tennenbaum"
                  Email="jtennenbaum@virtucon.com"
                  Company="Virtucon"
                  Dept="developer support"
                  Joke="my favorite joke"
                  FavNum="16">
                  <Skills
                       Skill="xml"
                       Level="novice"/>
                  <Skills
                       Skill="asp"
                       Level="expert"/>
             </Students>
             <Students
                  ...
Modelo del objeto del
documento
   Implementa interfaces de
    programación
   Conjunto estándar de objetos
   Interfaces estándar
   Nivel 1
       Adoptado en 1-oct-1998
       Implementado por Microsoft, IBM, otros
   Nivel 2
       Grupo de trabajo
       Sin fecha de emisión
Demo: Scripting XML
                       Acceder a
                        contenido del
                        elemento XML con
                        un script
                           GetStudents.asp
                           Scripting.htm
                       Recorrer el árbol
                        XML de forma
                        recurrente
                           WalkTree.htm
        Código en
        http://Xmlu.com/events/TechEd99
XSL como una extensión
scripting SortYear.xsl SortName.xsl   GetAL.xsl




    XML

                                           Sort by Year
                                           Sort by Name
                                          Liga Americana
                        Procesador
                            XSL
                          (HTML)
Taller: Clasificar y filtrar
                     Escribir hojas de
                      estilo XSL para
                      clasificar y filtrar
                      datos
                         Filter.htm
                         mvp.xml




                Código en
                http://Xmlu.com/events/IWorld99LA
</Tutorial>
   Materiales del curso
       http://Xmlu.com/events/TechEd99
   XML
       http://architag.com/xml
       http://msdn.microsoft.com/xml
       http://ibm.com/xml
   XSL
       http://www.w3.org/Style/XSL/
       http://microsoft.com/xml/xsl/reference/start.asp
   XLink, XPointer, DOM
       http://www.w3.org/TR/1998/WD-xlink-19980303
       http://www.w3.org/TR/1998/WD-xptr-19980303
       http://www.w3.org/DOM

								
To top