BizTalk Utilities CV ,   Jobs ,   Code library  
 
 
Lê isto em Português Lea esto en Español Lire cet article en Français Read this in English

Aprender XML

O que deves saber previamente
O que é o XML?
Como funciona o XML?
XML e Web browsers
Entidades,  elementos e atributos
Programação com XML
Comunicar com o servidor utilizando o HTTPRequest
Trabalhar com ADO e XML
Bem Feito!

O que deves saber previamente

Para ler e entender este documento é necessário uma noção básica de HTML,  e para entender o código fornecido deves perceber de VB ou de ASP.

O que é o XML?

XML significa eXtensible Markup Language e foi aprovado pelo World Wide Web Consortium (W3C) em Fevereiro de 1998.

XML não é na realidade uma nova linguagem, é uma meta-linguagem, que é utilizada para definir outras linguagens.

XML cria documentos que são bem estruturados e como resultado todas as linguagens baseadas em XML são também bem estruturadas.  O que isto significa é que os dados em XML são mais fácilmente utilizados.

Então, XML é a fundação de uma nova maneira de comunicar através da Internet, porque possibilita que as empresas e os seus sistemas computacionais comuniquem mais facilmente.

XML é utilizado para criar outras linguagens de marcação

XML é utilizadopara a criação de muitas outras liguagens de marcação.  Uma das mais conhecidas é o XSL, que é feito a partir do XML.  A relação entre o XML e o XSL é muito importante.  Se o XML é somente dados, o XSL é utilizado para alterar esses dados no formato que pode posteriormente ser utilizado.

Por exemplo o XSL pode ser utilizado para pôr cor no XML, ou para alterar o XML numa outra coisa qualquer.

O desenvolvimento das normas do XML é coordenado pelo W3C.

Quem é o W3C? (WorldWide Web Consortium)

O W3C foi fundado em Outubro de 1994.  O seu objectivo é desenvolver protocolos comuns através de um "consorcio internacional da industria". http://www.w3.org

No W3C, podes encontrar:

  • um repositório de informação sobre a WWW para programadores e utilizadores
  • implementações de código referência para os diversos standards
  • vários prototipos e exemplos de aplicações que demonstram a utilização das novas tecnologias que estão a ser elaboradas pelo W3C

O W3C é um conjunto de partes interessadas que se reunem para trabalhar em diversas novas tecnologias da Internet.  O seu processo é substancial e inclusivo e resulta numa decisão por consenso (se bem que existem histórias de braços de ferros dentros dos grupos de trabalho), de qualquer forma o resultado final tem sempre uma forte adesão.

Como trabalhas com o W3C?

Primeiro alguém (um grupo, uma empresa, uma pessoa) submete uma nota ao W3C sobre uma tecnologia ou um determinado ponto tecnológico.  Depois de MUITA discussão e consultas, é criada uma proposta rascunho.  Com alguma sorte e muito trabalho, pode ser alcançada uma recomendação.  Nessa altura, a tecnologia pode ser considerada pronta para uma alargada utilização pela industria.

Notas

Uma Nota é somente uma idéia - não existe qualquer compromisso em seguir o seu teor. 

Rascunho de Trabalho

Este é um trabalho em evolução - um grupo dentro do W3C está activamente a trabalhar nele.

Proposta de Recomendação

Foi obtido algum concenso dentro do grupo de trabalho e este é revisto por instências superiores.

Recomendações

A idéia que começou como uma Nota tornou-se agora 'oficial' de acordo com o W3C, esta tecnologia está pronta a ser utilizada.

O que é que o W3C não é

O que o W3C não é, é ser um "policia".  Eles não obrigam a utilização dos acordos ou tecnologias recomendadas.  Todas as partes envolvidas podem (e algumas vezes fazem-no) "estender" ou "melhorar" as resoluções alcançadas

Mais leituras

Para ver algumas das actividades e projectos presentes no W3C, visita o http://www.w3.org/Consortium/Activities

Como funciona o XML?

Não só o XML contém os teus dados, como pode também conter a estrutura e até a classificação da informação contida no teu documento.  Com a utilização do XML o documento contêm a informação sobre si mesmo!

Isto é possivel porque em XML podes definir as tuas próprias marcas.  Isto é o que faz com que seja muito melhor que o HTML que somente possui um pequeno conjunto de marcas de visualização - mas o XML está interessado em muito mais do que a somente a visualização!

Criação de novas marcas em XML

Se seguires as regras - podes facilmente criar novas marcas XML.

As marcas em XML assemelham-se muitas vezes as marcas em HTML.  Aqui estão alguns exemplos de marcas 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>

Quais são as regras do XML?

Existem 10 regras básicas para o XML.

Vamos ver quais são os objectivos definidos para o XML pelo W3C:

  • XML será directamente utilizado na Internet.
  • XML será suportado por uma vasta variedade de aplicações.
  • XML será compativel com o SGML.
  • Será fácil escrever programas que façam o processamento de documentos XML.
  • O número de caracteristicas opcionais no XML deverá ser mantida num número minimo, idealmente zero.
  • Os documentos XML deverão ser passiveis de ser lidos por humanos e razoavelmente claros.
  • O desenho do XML deverá ser preparado rapidamente.
  • O desenho do XML deverá ser formal e conciso.
  • Os documentos XML deverão ser facilmente criados.
  • A sintetização das marcas XML é de minima importância.

XML e Web browsers

É importante frisar aqui que isto está só no começo. Quase nenhum site na internet está efectivamente a utiliza-lo, pela simples razão de que quase nenhum browsers o suporta.

Microsoft Internet Explorer 4.0, 5.0, 5.5 e o próximo 6.0 todos suportam XML.

Netscape tem algum suporte para XML no Communicator/Navigator 6.0. e também tem um alargado suporte ao RDF (Resource Description Format) para apresentar o que a Netscape chama de "completa integração da informação do escritório."

RDF

RDF é uma aplicação XML que é particularmente adequada a modelação de dados.  Através do suporte da Netscape e do projecto Open Directory (http://www.dmoz.org) RDF está a ser utilizado para a catalogar a Internet.

Entidades, elementos e atributos

Elementos

Os Elementos têm este aspecto:

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

Atributos

Os Atributos são parte ou propriedade dos elementos.  <BOOK TITLE="XML programming for VB and ASP developers">...</BOOK>

Uma interessante semelhança entre atributos e elementos é que o elemento BOOK (livro) contém um atributo PUBLISHER (editor):

<Book Publisher="Manning">XML programming for VB and ASP developers</Book>

Convém lembrar que os atributos não podem ser hierárquicos - não podem conter sub-elementos, mas podes alterar um atributo para ser um elemento.  Então utilizarias:

<Publication>
         <Book>XML programming for VB and ASP developers</Book>
         <Publisher>Manning</Publisher>
</Publication>

Entidades

Qualquer ficheiro ou recurso web que possa ser "incluido" num ficheiro XML é uma entidade.  Entidade é também utilizada para referir a representação de caracteres especiais ou substituição de conjunto de caracteres e inclusões.

Um exemplo de utilização de entidades para substituição de entidades por um conjunto de caracteres é:

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

Podes então utilizar a entidade  &BookName; no documento seja qual for o local onde esta seja referenciada, sendo esta substituida pelo conjunto de caracteres "XML programming for VB and ASP developers".  Em VB, isto é semelhante à utilização de uma constante.

Programação com XML

Vamos ver alguns exemplos de programação com XML.

Criação de objectos XML

Para os programadores de ASP, utilizam a seguinte sintaxe para a criação de um novo objecto DOMDocument através de programação - esta é a mesma sintaxe para a criação de qualquer outro objecto.

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

e para os programadores de VB, podem utilizar quer o código do CreateObject, acima mencionado, ou podem adicionar uma referência no seu projecto ao objecto "Microsoft XML, version  3.0" e podem então utilizar:

Dim xmlDoc As New DOMDocument

Como ter os objectos Microsoft XML no teu PC

Para utilizar estes exemplos de código que utilizam o objecto Microsoft XML (por exemplo o DOMDocument), tens de primeiro adicionar uma referência no teu projecto ao objecto "Microsoft XML 3.0" - naturalmente tens de ter instalados estes objectos no teu ambiente de desenvolvimento e no ambiente de produção onde vais instalar a tua solução.

Existem duas maneiras simples para colocar os objectos Microsoft XML no teu sistema.  Podes ter o IE5/5.5 (ou o próximo 6.0) instalados, ou podes expandir o IE4 com o resdistribuivel XML que podes efectuar o download do website da Microsoft.

Carregar elementos XML para uma caixa de combinação

Esta é a maneira como podes preencher uma caixa de combinação com os dados de um ficheiro XML!

Private Sub cmdRefresh_Click()
Dim xmlCustomers As MSXML.DOMDocument
Dim xmlNode As MSXML.IXMLDOMNode
lstCustomers.Clear
'Call DLL to get array filled with Values
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

Aceder a um ficheiro XML

Se pretendes carregar o teu XML num DOMDocument, então em ASP podes utilizar:

Response.Write(xmlDoc.xml)

ou em VB podes utilizar:

MsgBox xmlDoc.xml

Tratamento de erros e depuração

A maneira mais simples de depurar é a visualizar a propriedade "xml" do DOMDocument e ver se foi possivel carregar o documento. Se esta não mostrar nada então houve um erro no carregamento.  Então, utiliza a seguinte linha de código para ver o último erro.

xmlDoc.xml

Para descobrir qual foi o último erro, aceder à colecção parseError.

xmlDoc.parseError.reason

Comunicar com o servidor utilizando o HTTPRequest

Uma das coisa interessantes sobre o XMLHTTP é a possibilidade de enviar e obter dados XML através de um servidor HTTP.

Esta é uma maneira fácil de ficar verdadeiramente independente do servidor, visto que o programa não se preocupa qual o servidor HTTP com o qual está a comunicar, nem mesmo qual o sistema operativo que o mesmo utiliza - tudo o que o servidor HTTP precisa é possuir a capacidade de receber chamadas HTTP, como o POST e o GET e depois passar essas chamadas para um qualquer tipo de programa (ASP, CGI, Java Servlets, etc).

Então podes ver que a combinação de XML via chamadas HTTP como um tipo de middleware ou cola para juntar os sistemas.

No nosso caso, vamos abrir uma conecção para o servidor web (o Personal Web Server 1.0a) no meu PC e depois utilizar um ficheiro ASP que nos irá dar uma resposta.

Para efectuar a conecção, vamos utilizar um objecto que é disponibilizado em conjunto com o IE5 e que se chama XMLHTTP.  Basicamente, tu abres a conecção "POST" para o teu servidor web (que afinal é tudo o que um web server pode efectuar!) e depois utilizando essa conecção, tu "comunicas" com o ficheiro PEOPLEVB.ASP e esse vai retornar a tua escolha em formato XML.

Receber um objecto XML DOMDocument em VB

Na parte de VB deste exemplo, o código para nos conectarmos ao servidor web é o seguinte:

'create the objects
Dim xmlHttp As new XMLHTTPRequest
Dim xmlDoc As DOMDocument
'open the POST (or GET) connection to the web server
xmlHttp.Open "POST", "http://localhost/xmlcode/demo.asp", False
'establish the connection
xmlHttp.Send
'receive the response - note there are different types of responses, binary and text is also supported
Set xmlDoc = xmlHttp.responseXML

No lado do servidor web, vamos utilizar algum código ASP contido no ficheiro demo.asp.  Certifica-te que o do lado do teu servidor o ficheiro ASP estabeleça o ContentType como "text/xml" e que seja retornado para o cliente um ficheiro XML, utiliza o seguinte:

<%
'make a variant object
Dim xmlDoc
'place the DOMDocument into the xmlDoc object
Set xmlDoc = Server.CreateObject("MSXML.DOMDocument")
'load the XML document object here
xmlDoc.load Server.MapPath("people.xml")
'set the content type to XML - note other types are supported
Response.contenttype = "text/xml"
'now send back the DOMDocument you have loaded above
response.write xmlDoc
%>

Agoras tens um pequena aplicação em VB, que comunica com um ficheiro ASP num servidor web e que recebe um DOMDocument como resposta.

Trabalhar com ADO e XML

Se estás a utilizar o ADO 2.1, podes gravar o teu recordset para um ficheiro XML utilizando o método Save do objecto ADO recordset.

O método Save aceita dois argumentos, FileName e PersistFormat.  O truque está no PersistFormat, porque podes utilizar "adPersistADTG" que é um formato binário ou podes utilizar o adPersistXML para um formato XML.

Experimenta este código em VB para gravar o teu ADO recordset em XML:

Private Sub cmdSaveAdoFile_Click()
Dim PEOPLE As ADODB.Recordset
Dim ObjConn As New ADODB.Connection
'open an existing ODBC connection to your database
ObjConn.Open "VBXML"
'execute a select SQL statement against the database
Set PEOPLE = ObjConn.Execute("select * from People")
'save the recordset as an XML file
PEOPLE.Save "c:\adodemo.xml", adPersistXML
End Sub

Agora, para carregar esse ficheiro XML de novo para o ADO recordset, podes utilizar o seguinte código para o botão load (carregar) :

Private Sub cmdLoadAdoFile_Click()
Dim PEOPLE As ADODB.Recordset
Set PEOPLE = New ADODB.Recordset
'open your XML file and load it
PEOPLE.Open "c:\adodemo.xml", "Provider=MSPersist"
'lets have a message box popup the number of records
MsgBox PEOPLE.RecordCount
End Sub

E é tudo o que é preciso fazer.  Agora sabes como gravar e carregar um recordset para um ficheiro XML em poucas linhas de código.

Bem Feito!

Estás agora no bom caminho para compreender o XML e trabalhar com ele.  Lê os exemplos que se seguem nas diversas secções.

 

Recent Jobs

An immediate job opportunity as a B
Software Developers Needed in Charl
Sr. Software Engineer - Analytics
Immediate Mainframe openings for Ch
Immediate TANDEM-TAL openings for C

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



answering service
masks
swimming pool builder
free conference call
water softener
Teleconference
Host Department NOLIMIT Web Hosting
MSN
sunglasses


    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