300 likes | 380 Views
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
E N D
XMLExtended 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; b = (I <=3); ]]>
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
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: • 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