XML Extended Markup Language Wagner Meira Jr.
O que é? XML é uma linguagem para documentação estruturada. Documentos Estruturados contém não apenas conteúdo (palavras, imagens) como também a função do conteúdo.
XML vs. HTML HTML: conjunto e semântica de tags pré-definidos <H1> e <ati.product.code> XML: meta-linguagem para descrever linguagens de marcação. XML provê recursos para para definir tags e as relações estruturais entre elas. Toda a semântica vem de aplicações ou estilos
XML vs. SGML SGML é o padrão OSI para documentação estruturada. XML é um “perfil de aplicação” de SGML. XML é muito mais restrito que SGML. SGML permite estruturas arbitrárias, mas a dificuldade de implementação é muito grande para que navegadores a suportem.
XML: Objetivos Uso de XML na Internet deve ser trivial. Deve ser possível visualizar documentos tão fácil e rapidamente quanto em HTML. XML deve suportar várias aplicações. XML deve ser compatível com SGML. Programas para processar documentos XML devem ser fáceis de implementar.
XML:Objetivos O número de recursos opcionais em XML deve ser mínimo, idealmente zero. O projeto do padrão XML deve ser rápido. O projeto de XML deve ser formal e conciso. Documentos XML devem ser simples de criar. Concisão na marcação não é importante.
XML: Componentes XML: define a sintaxe de XML. XLL: define um padrão de representação de referências entre recursos. XSL: define uma linguagem de descrição de estilos para XML. XUA: Padroniza a criação de agentes XML.
Exemplo XML <?XML version=“1.0”?> <oldjoke> <burns>Say<quote>goodnight </quote>, Gracie. </burns> <allen>Goodnight, Gracie</allen> <applause/> </oldjoke>
Marcadores XML Elementos Referências a entidades Comentários Instruções de Processamento Seções Formatadas Declarações de Tipos de Documentos
Elementos Marcação mais comum Delimitados por < e > Exemplos: <element> bla bla bla </element> <element/>
Atributos Pares nome-valor que caracterizam o elemento Em XML, todos os atributos devem vir entre aspas. Exemplo: <div class=“preface”>
Referências a Entidades Utilizadas para representar caracteres especiais: < = “ > = ” & = & Caracteres Unicode: ℞ ou ℞
Comentários Não são processados pelo interpretador XML Início: <!-- Fim: -->
Instruções de Processamento Recurso para prover informações para uma aplicação Não são parte do documento XML, mas são passados às aplicações Instruções não reconhecidas são ignoradas Formato: <?name pidata?>
Seções CDATA Desabilita as marcações Exemplo: <![CDATA[ *p= &q; ]]>
Declaração de Tipos de Documentos Permite a criação de Tags Permite definição de semântica diferenciada Tipos: Declarações de elementos Declarações de listas de atributos Declarações de entidades Declarações de notação
Exemplo
DTD: Exemplo <?xml version="1.0" ?> <!DOCTYPE PurchaseOrder [ <!ELEMENT PurchaseOrder (Customer,Supplier,Order)> <!ELEMENT Customer Supplier (Name,Address*)> <!ELEMENT Order (Item+)> <!ELEMENT Name Item Address (#PCDATA)> <!ENTITY ctp "Cambridge Technology Partners"> <!ATTLIST Customer uid ID #REQUIRED > <!ATTLIST Order cid IDREF #REQUIRED > ]>
DTD: Exemplo <PurchaseOrder> <Customer uid="C0023416"> <Name>&ctp;</Name> <Address>304 Vassar St.,Cambridge,MA</Address> </Customer> <Supplier> <Name>Computer And Printer Paradise</Name> <Address>45 Seabreeze Dr., Miami, FL</Address> </Supplier > <Order cid="C0023416"> <Item>A brown hat</Item> </Order> </PurchaseOrder>
Declarações de Elementos Exemplo: <!ELEMENT Customer Supplier (Name,Address*)> <!ELEMENT Order (Item+)> <!ELEMENT Name Item Address (#PCDATA)> Declarações para todos os elementos usados devem estar no DTD Definição especial #PCDATA indicando string Dois outros modelos de conteúdo Empty Any (desaconselhável)
Declarações de Atributos Exemplo: <!ATTLIST Customer uid ID #REQUIRED > <!ATTLIST Order cid IDREF #REQUIRED > Tipos: CDATA: strings genéricas ID: nome único no documento IDREF: conjuntos de Ids ENTITY: nome de uma entidade NMTOKEN: uma única palavra Lista de nomes: enumeração de valores possíveis
Declarações de Atributos Valores padrão: #REQUIRED: deve ser instanciado para cada ocorrência #IMPLIED: não é obrigatório e não há valor padrão “value”: o valor dado é o padrão para cada ocorrência #FIXED “value”: Se o atributo ocorrer deve ter o valor especificado
Declarações de Entidade Permitem associar nomes com outros fragmentos do documento: Texto Parte do DTD Arquivo Externo Exemplo: <!ENTITY ctp "Cambridge Technology Partners">
Entidades Internas Podem incluir referências para outras entidades, mas não podem ser recursivas. Entidades pré-definidas: < = < > = > & = & &apos = ‘ " = “
Entidades Externas A referência à entidade causa a inserção do arquivo indicado. Entidades externas podem ser texto ou binárias
Entidades Parametrizadas Podem ocorrer apenas dentro do DTD É identificada por <%> antes do seu nome Funcionam como macros, sendo imediatamente expandidas na DTD.
Declarações de Notação Identificam tipos binários externos específicos. Informação é passada para a aplicação. Exemplo: <!NOTATION GIF87A SYSTEM “GIF”>
Tipos de documentos Documentos bem formados: Documentos Válidos Compiláveis por XML Documentos Válidos Possuem um DTD e o seguem
Vantagens Flexível Auto-contida Portável Fácil de utilizar Robusta Legível
Desvantagens Tamanho Custo de processamento Complexidade