XML (Extensible Markup Language) é um subtipo de SGML (Linguagem Padronizada de Marcação Genérica) capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da Internet.
Exemplo:
[php] <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> [/php] Alguns cuidados para gerar um bom arquivo XML:
- Documentos XML devem ter um elemento raiz
- Os elementos XML devem ter uma tag de fechamento
- Cuidado com letras maiúsculas e minúsculas, o XML são case sensitive
- Os elementos XML devem estar devidamente aninhados
- Valores de atributos XML devem ser adicionados
Para o XML temos duas linguagens para validação DTD e XML SCHEMA. DTDs (Document Type Definitions) é uma linguagem para definir a estrutura de um documento XML. Exemplo: [php] <!DOCTYPE note <pre> <pre> [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> [/php]
XML Schema é uma linguagem baseada no formato XML para definição de regras de validação (“esquemas”) em documentos no formato XML, ou seja, é possível validar se um campo é numérico, data etc.
Exemplo: [php]
<pre>
<pre><xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
[/php]
XSL (linguagem extensível para folhas de estilo de transformações), é uma linguagem de marcação XML usada para criar documentos XSL que, por sua vez, definem a apresentação dos documentos XML nos browsers e outros aplicativos que a suportem.Sua funcionalidade é bem parecida com um arquivo CSS, apenas determina como o browser apresenta o documento XML ao qual ele está associado ou anexado.O browser recebe o documento XML original, na íntegra, como ele foi criado. E apresenta-o como o documento XSL determina.
Exemplo:Arquivo XML:
[php]
<pre>
<pre><?xml version="1.0" encoding="ISO-8859-1"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
<calories>650</calories>
</food>
</breakfast_menu> [/php]
Arquivo XSL:
[php] <?xml version="1.0" encoding="ISO-8859-1"?> <html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> <xsl:for-each select="breakfast_menu/food"> <div style="background-color:teal;color:white;padding:4px"> <span style="font-weight:bold"><xsl:value-of select="name"/></span> - <xsl:value-of select="price"/> </div> <div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> <xsl:value-of select="description"/> <span style="font-style:italic"> <xsl:value-of select="calories"/> (calories per serving) </span> </div> </xsl:for-each> </body> </html> [/php] Ambiente de teste: http://www.w3schools.com/xml/tryxslt.asp?xmlfile=simple&xsltfile=simple