BizTalk Utilities CV ,   Jobs ,   Code library  
 
Home Page
Uncategorized
Converting HTML to WML
Database Web Application Wizard
Client-Side Presentation Logic
Learn XML
The Understanding XML Game
Dynamic functions: Functional combination, partial application and lambda expressions
An exploration of XML in database management systems
Code Samples 1
Code Samples 2
Using XML to manage a wizard
An enhancement of the Microsoft XML Class Generator
Format XML
Sending Binary Data in XML to server
Retrieving a Registry subtree as XML
An example of creating practical and efficient client-side, offline, standalone, server-independent
Using custom XML Namespaces in a VB application from an XML stylesheet
An XML Chat room
Base64 Encoder
A very simple way to generate multiple HTML combos from XML.
Retrieving a Registry subtree as XML
<< System.XML
WCF, WS, SOAP >>

By :Mark Wilson
I am the creator of TopXML. I am available for international and local (Australia) contracts. I am a Solution Architect/Business Analyst. I have worked in IT in several countries (NZ, Australia, South Africa, UK) building and training teams for government and very large non-governmental organizations. I am ex-Microsoft Consulting Services. I wrote the first book on Microsoft XML published in 2000 called XML Programming with VB and ASP. Most recently I have been building tools for the SEO industry. Ask me for a 37 point SEO health-checkup for your website.
First posted :12/12/2003
Times viewed :763

 
Lê isto em Português Lea esto en Español Lire cet article en Français Read this in English

Aprenda XML

Qué debería conocer
¿Qué es XML?
¿Cómo trabaja XML?
XML y los navegadores web
Entidades, elementos y atributos
Programando con XML
Comunicándose con el servidor vía HTTPRequest
Trabajando con ADO y XML
¡Bien hecho!

Qué debería conocer

Para leer y entender este artículo, una noción básica de HTML sería útil. Para entender el código suministrado, usted debería saber VB o ASP.

¿Qué es XML?

XML son las siglas de eXtensible Markup Language (Lenguaje eXtensible de Marcas) y fue aprobado por el World Wide Web Consortium (W3C) en febrero de 1998.

XML no es en realidad un nuevo lenguaje, es un metalenguaje. Se usa para definir otros lenguajes.

XML crea documentos que están bien estructurados y en consecuencia todos los lenguajes basados en XML son también bien estructurados. Esto implica que los datos en XML son más fácilmente utilizables.

Así, XML es la base para una forma enteramente nueva de comunicación a través de Internet, porque posibilita a las empresas y a sus sistemas informáticos comunicarse más fácilmente.

XML se utiliza para crear otros lenguajes de marcas

XML se utiliza para crear otros lenguajes de marcas. Uno de los más conocidos es XSL. XSL está basado en XML. La relación entre XML y XSL es de suma importancia. Si XML son los datos en bruto, entonces XSL se usa para convertir esos datos en bruto en un formato de datos utilizable.

Por ejemplo XSL puede ser usado para poner color en el XML, o cambiar el documento XML en alguna otra cosa.

El desarrollo del estándar XML está dirigido por el W3C.

¿Quién es el W3C? (World Wide Web Consortium)

El W3C fue fundado en octubre de 1994. Su cometido es desarrollar protocolos de uso común a través de un "consorcio internacional de la industria". http://www.w3.org

En el W3C, usted puede encontrar:

  • Un repositorio de información acerca del WWW para desarrolladores y usuarios.
  • Código de referencia para la implementación de los distintos estándares.
  • Prototipos diversos y aplicaciones de ejemplo para demostrar el uso de nuevas tecnologías fomentadas por el W3C.

El W3C es una colección de grupos interesados que se reúnen para discutir acerca de nuevas tecnologías en Internet. Su proceso es bastante considerable y profundo, y tiene como resultado una decisión consensuada (aunque existen historias en el web de decisiones tomadas a la fuerza dentro de los grupos de trabajo); de cualquier forma el resultado final tiene un gran impulso.

¿Cómo trabaja el W3C?

Primero alguien (un grupo, una compañía, una persona) eleva una nota acerca de una tecnología o un asunto técnico al W3C. Después de un montón de debate y consultas, se crea una propuesta de borrador. Con suerte y mucho trabajo, se puede llegar a una recomendación. En este momento, la tecnología se considera lista para su adopción en la industria.

Nota

Una nota es simplemente una idea, no existe compromiso para seguir adelante con una nota.

Borrador de trabajo

Este es un trabajo en progreso, un grupo dentro del W3C está activamente trabajando en él.

Propuesta de Recomendación

Algún consenso ha sido logrado dentro del grupo de trabajo. Se ha elevado para revisión.

Recomendación

La idea que comenzó como una nota ahora se ha vuelto 'oficial'. Según el W3C, esta tecnología está lista para su uso.

Qué no es el W3C

El W3C no hace las veces de policía. No impone los acuerdos hechos o las tecnologías diseñadas. Cada una de las partes involucradas puede (y a menudo lo hacen) "extender" o mejorar los diseños.

Más información

Para ver algunas de las actividades y proyectos dentro del W3C, diríjase a http://www.w3.org/Consortium/Activities

¿Cómo trabaja XML?

XML no sólo contiene datos, también puede contener la estructura e incluso la categorización de la información dentro del mismo documento. ¡Con XML el documento lleva documentación acerca de sí mismo!

Esto es posible porque en XML usted puede definir sus propias etiquetas. Esto es lo que le hace mucho mejor que HTML, que sólo tiene unas pocas etiquetas para presentación. ¡En cambio, XML sirve para mucho más que para presentación!

Creando etiquetas nuevas en XML

Mientras usted siga las reglas, podrá crear fácilmente nuevas etiquetas XML.

Las etiquetas XML se asemejan a las que encontramos en HTML. Aquí hay algunas etiquetas XML:

<book_title>XML PROGRAMMING WITH VB AND ASP</book_title>
<author>Mark Wilson and Tracey Wilson</author>
<publisher>Manning Publications</publisher>
<copydate>2000</copydate>
<retailprice>$1,000,000</retailprice>
<ISBN> 1884777872</ISBN>

¿Cuáles son las reglas de XML?

Hay diez reglas básicas en XML.

Echemos un vistazo a los objetivos establecidos por el W3C para XML:

  • XML será directamente utilizable en Internet.
  • XML soportará una amplia variedad de aplicaciones.
  • XML será compatible con SGML.
  • Será fácil escribir programas que procesan documentos XML.
  • El número de características opcionales en XML debe mantenerse en un mínimo absoluto, idealmente cero.
  • Los documentos XML deberán ser legibles por humanos y resultar razonablemente claros.
  • El diseño de XML deberá ser preparado rápidamente.
  • El diseño de XML será formal y conciso.
  • Los documentos XML serán fáciles de crear.
  • El laconismo en las etiquetas XML es de importancia mínima.

XML y los navegadores web

Es importante subrayar aquí que esto es sólo el comienzo de la tecnología XML. Apenas unos pocos sitios utilizan esta tecnología por la simple razón que muy pocos navegadores la soportan.

Microsoft Internet Explorer 4.0, 5.0, 5.5 y el próximo 6.0 dan soporte a XML.

Netscape posee algún soporte para XML en Communicator/Navigator 6.0 y también tiene soporte para RDF (Resource Description Format) para presentar lo que Netscape llama "completa integración de la información en el escritorio."

RDF

RDF es una aplicación XML que se adecua a la perfección para el modelado de datos. A través del soporte de Netscape y del Open Directory Project (http://www.dmoz.org) RDF está siendo usado para catalogar Internet.

Entidades, elementos y atributos

Elementos

Los elementos tienen este aspecto:

<BOOK>...<TITLE>XML programming for VB and ASP developers</TITLE>...</BOOK>

Atributos

Los atributos son partes o propiedades de los elementos. <BOOK TITLE="XML programming for VB and ASP developers">...</BOOK>

Una similitud interesante entre atributos y elementos es que este elemento BOOK (libro) contiene un atributo PUBLISHER (editor):

<BOOK PUBLISHER= "Manning">XMLprogramming for VB and ASP developers</BOOK>< /p>< /p>< /p>

Recuerde que los atributos no pueden ser jerárquicos, es decir, no pueden contener subelementos. Pero usted también podría cambiar el atributo por su propio elemento. Entonces quedaría como:

<PUBLICATION>
         <BOOK>XML programming for VB and ASP developers</BOOK>
         <PUBLISHER>Manning</PUBLISHER>
</PUBLICATION>

Entidades

Cualquier archivo o recurso web que puede estar "incluido" en un archivo XML es una entidad. Las entidades se usan también para referirse a las representaciones de caracteres especiales y las sustituciones de cadenas de texto e inclusiones.

El siguiente es un ejemplo del uso de entidades para sustituir cadenas de texto:

<!ENTITY BookName "XML programming for VB and ASP developers">

Una vez puesto esto, puede usar la entidad &BookName; en el documento y dondequiera que aparezca será sustituida por la cadena "XML programming for VB and ASP developers". Esto es similar a utilizar una constante en VB.

Programando con XML

Echemos un vistazo a algunos ejemplos de programación con XML.

Creando los objetos XML

Para desarrolladores ASP, utilice la siguiente sintaxis para crear un objeto del tipo DOMDocument. Es la misma sintaxis CreateObject que para crear los demás objetos.

<%
    Dim xmlDoc
    Set xmlDoc = CreateObject("Microsoft.XMLDOM")
%>

Un programador VB puede usar el código CreateObject citado anteriormente, o puede añadir una referencia en el proyecto a "Microsoft XML, v3.0", en ese caso puede utilizar:

Dim xmlDoc As New DOMDocument

Cómo obtener los objetos Microsoft XML

Para usar estos ejemplos de código que hacen referencia a los objetos Microsoft XML (como DOMDocument), primero tiene que añadir una referencia en su proyecto a "Microsoft XML, v3.0", naturalmente usted debe tener estos objetos instalados previamente en su ordenador de desarrollo y en el sistema de producción, donde va a instalar la solución.

Hay dos formas sencillas para instalar los objetos Microsoft XML en sus sistemas. Puede tener IE5/5.5 (o el próximo 6.0) instalado, o puede extender IE4 con el redistribuible XML que puede bajar del sitio web de Microsoft.

Cargando elementos XML en un cuadro combinado

Esto es un ejemplo de cómo puede llenar un cuadro combinado cargando el contenido de un archivo XML.

Private Sub cmdRefresh_Click()
    Dim xmlCustomers As MSXML.DOMDocument
    Dim xmlNode As MSXML.IXMLDOMNode
    lstCustomers.Clear
    'Llamamos a una DLL que nos devolverá los datos como DOMDocument
    Set xmlCustomers = objCustomer.GetCustomerList()
    For Each xmlNode In xmlCustomers.documentElement.childNodes
        lstCustomers.AddItem xmlNode.childNodes(1).firstChild.nodeValue& "_
        " &xmlNode.childNodes(2).firstChild.nodeValue lstCustomers.ItemData(lstCustomers.NewIndex) =_         xmlNode.childNodes(0).firstChild.nodeValue
    Next xmlNode
End Sub

Accediendo al contenido de un documento XML

Si quiere mostrar el contenido XML de un DOMDocument, en una página ASP puede usar:

Response.Write(xmlDoc.xml)

O, en VB, puede utilizar:

MsgBox xmlDoc.xml

Tratamiento de errores y depuración

La forma más simple de depurar es acceder a la propiedad "xml" de DOMDocument (por ejemplo: xmlDoc.xml) y ver si se ha logrado cargar el documento. Si esta propiedad no contiene nada es que hubo un error al cargar, en ese caso puede acceder al objeto parseError para encontrar el último error:

xmlDoc.parseError.reason

Comunicándose con el servidor vía HTTPRequest

Una de las cosas interesantes acerca del objeto XMLHTTP es la posibilidad de situar datos XML en un servidor de HTTP o recuperar XML de un servidor HTTP.

ésta es una manera sencilla de lograr la independencia del servidor porque a un programa no le importa qué tipo de servidor HTTP es con el que está hablando, o qué sistema operativo corre dicho servidor. Todo lo que el servidor HTTP necesita es tener la capacidad de recibir llamadas HTTP como POST o GET y pasar la llamada a algún tipo de programa (ASP, CGI, servlets de Java, etc.)

Así, puede considerar la combinación de XML vía llamadas HTTP como un tipo de middleware o pegamento para relacionar distintos sistemas.

Vamos a ver un ejemplo en el que vamos a abrir una conexión con un servidor web (Personal Web Server 1.0a) y llamar a un archivo ASP que nos dará una respuesta.

Para hacer la conexión, haremos uso de un objeto que se suministra con IE5 y que se llama XMLHTTP. Básicamente vamos a abrir una conexión "POST" con el servidor web (¡que es lo que todo navegador web hace!) y entonces, usando esta conexión, "hablaremos" con el archivo demo.asp que nos devolverá una lista en formato XML.

Recibiendo un objeto XML DOMDocument en VB

En la parte VB de este ejemplo, el código que se utiliza para conectarse con el servidor web es:

'Creamos los objetos
Dim xmlHttp As new XMLHTTPRequest
Dim xmlDoc As DOMDocument
'Abrimos la conexión POST (o GET) con el servidor web
xmlHttp.Open "POST", "http://localhost/xmlcode/demo.asp", False
'Establecemos la conexión
xmlHttp.Send
'Recibimos la respuesta
'Hay diferentes tipos de respuesta (binario, texto, etc.)
Set xmlDoc = xmlHttp.responseXML

En el lado del servidor web usaremos código ASP en el archivo demo.asp que está siendo llamado. Debemos asegurarnos que el código del lado servidor establezca ContentType como "text/xml" y que devuelva un documento XML:

<%
    'Declaramos un objeto variant
    Dim xmlDoc
    'Colocamos un DOMDocument en xmlDoc
    Set xmlDoc = Server.CreateObject("MSXML.DOMDocument")
    'Cargamos el documento XML
    xmlDoc.load Server.MapPath("people.xml")
    'Establecemos el tipo como XML
    Response.contenttype = "text/xml"
    'Enviamos de vuelta el DOMDocument que hemos cargado
    response.write xmlDoc
%>

Ahora tiene una sencilla aplicación VB que se comunica con una página ASP en un servidor web y acepta un DOMDocument como una respuesta.

Trabajando con ADO y XML

Si utiliza a ADO 2.1, entonces puede guardar un recordset en un archivo XML usando el método Save del objeto recordset ADO.

El método Save acepta dos argumentos, FileName y PersistFormat. El truco está en el parámetro PersistFormat, que acepta los valores "adPersistADTG" para formato binario y "adPersistXML" para formato XML.

Utilice este código VB grabar un recordset ADO en XML:

Private Sub cmdSaveAdoFile_Click()
    Dim People As ADODB.Recordset
    Dim ObjConn As New ADODB.Connection
    'Abrimos una conexión ODBC con la BBDD
    ObjConn.Open "VBXML"
    'Ejecutamos una SELECT contra la BBDD
    Set People = ObjConn.Execute("select * from People")
    'Guardamos el recordset como un archivo XML
    People.Save "c:\adodemo.xml", adPersistXML
End Sub

Para cargar ese fichero XML de vuelta en un recordset ADO, puede usar el siguiente código:

Private Sub cmdLoadAdoFile_Click()
    Dim People As ADODB.Recordset
    Set People = New ADODB.Recordset
    'Abrimos el archivo XML y lo cargamos
    People.Open "c:\adodemo.xml", "Provider=MSPersist"
    'Mostramos en una ventana de mensaje emergente el número de registros
    MsgBox People.RecordCount
End Sub

Y eso es todo lo que necesita hacer. Ahora sabe cómo grabar y cargar un recordset a partir de un archivo XML en unas pocas líneas de código.

¡Bien hecho!

Ahora usted se encuentra encaminado para entender XML y trabajar con él. Siga profundizando con los ejemplos que encontrará en las diferentes secciones.

Traducido por Emilio D'Angelo


Rate this article on a scale of 1 to 10

Your vote :  


 

Recent Jobs

Sr. Software Engineer - Analytics
Immediate Mainframe openings for Ch
Immediate TANDEM-TAL openings for C
Immediate ASP.NET/C# Openings for C
Sr. Software Engineer

View all Jobs (Add yours)
View all CV (Add yours)



international conference call
water softener
Teleconference
Host Department NOLIMIT Web Hosting
MSN
sunglasses
it help desk


    Email TopXML  

Front Page Daily Stuff TopXML Forum XML blogs XML Newsgroups BizTalk Biztalk Utilities Biztalk Utilities Tutorial B2B SAP XML Microsoft .NET Dotnet System XML Soapformatter SQLXML XMLserializer XQuery PHP PHP SimpleXML PHP XML Dom PHP XML RPC PHP XSLT Java Java Java XML Xalan Microsoft ASP ASP Schemas XML SQL Server XML XMLDom XSL XSL Tutorial XSLT Stylesheets General Javascript CSS XHTML WAP