Neste artigo, vamos olhar para a forma como um pode criar um DTD. A fim de compreender o XML (extensible markup language) DTD arquivos vamos rever as noções básicas de XML neste introdução. Está prevista para ter um entendimento básico de XML para este how-to.
XML- A Extensible Markup Language é um texto baseado em multi-plataforma linguagem que permite que você é para armazenar dados (como endereços em um catálogo de endereços) em uma forma estruturada. O documento XML deverá ter a sintaxe correta. Portanto, quando a documentos XML devem ser bem-formado. Um documento bem-formado tem o seguinte texto:
- Fechado tags (<hello> </ Olá> ou <hi />)
- Um elemento do atributo deve estar entre aspas (<candy price="0.50">)
- XML é sensível a maiúsculas. Em outras palavras, o início eo fim etiqueta deverá utilizar o mesmo caso
Um exemplo muito simples de um documento XML é apresentado a seguir para uma loja candy menu.
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<candy>
<productName company="XYZ"> lollipops </ ProductName>
<iD> 634847 </ id>
<price> 0,50 </ price>
</ cândi>
<candy>
<productName company="ABC"> Pastilhas </ ProductName>
<iD> 634812 </ id>
<price> 0,75 </ price>
</ cândi>
</ candystore>
A primeira afirmação é a transformação instrução. Ela diz ao analisador que estamos a trabalhar com uma determinada versão de XML. O resto do documento é composto de nossas marcas e elementos. No exemplo acima, o elemento "nome" tem um atributo de "empresa". Uma ótima maneira de lembrar um atributo é o de pensar nela como uma propriedade que algo pode ter. Um doce tem um nome. O nome está associado a uma determinada empresa.
Em nosso how-to vamos dar o exemplo acima e criar uma DTD para ele que vai definir regras para como o nosso elemento de conteúdo, dados ou em outras palavras, deve ser dado. (Por exemplo, o formato é esperado para a nossa id? Pode ter caracteres alfabéticos?)
DTD (Document Type Definition) - Uma DTD, como um XML Schema, declara metadados que atribui um tipo particular, seja ele simples ou complexos, para os elementos e seus atributos em um documento XML.
Vamos dar uma olhada novamente em nosso exemplo para a confeitaria.
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<candy>
<productName company="XYZ"> lollipops </ ProductName>
<iD> 634847 </ id>
<price> 0,50 </ price>
</ cândi>
<candy>
<productName company="ABC"> Pastilhas </ ProductName>
<iD> 634812 </ id>
<price> 0,75 </ price>
</ cândi>
</ candystore>
Nosso candystore elemento tem dois cândi sub-elementos. Cada elemento tem o doce subelementos do nome, id, e preço. Ela também tem um atributo chamado empresa. Ao construir as regras de sintaxe, temos de definir limites para o formato de nossos dados. Estas restrições podem ser baseadas em como os dados serão utilizados. Se, por exemplo, o nosso doce do ID deve caber em um produto factura dentro de 6 caracteres, em seguida, que irá ajudar a determinar as nossas limitações. Pergunte a si mesmo a algumas perguntas sobre os seus dados:
1. Será que os dados têm de ser apenas números ou letras por ordem alfabética?
2. Será que os dados têm de ser um determinado período? Ou uma duração mínima ou máxima mais especificamente?
3. Será que os dados têm que ter um determinado atributo ou subelement especificados? Ou são opcionais?
Agora que temos algumas idéias sobre o que perguntas, podemos perguntar-nos, nós podemos avançar. Vamos construir um conjunto de regras, antes de começar criar o nosso código XML Schema.
1. O nome do doce é necessária.
2. O nome da empresa não pode ser superior a 30 caracteres. É opcional.
3. O id deve ser todos os dígitos e deve ser exactamente 6 dígitos. É exigido.
4. O preço é necessário.
Com a nossa lista de regras, podemos agora criar a nossa definição de tipo de documento. Vamos revisar o básico.
O melhor pensamento no processo de criação de um DTD é a pensar em criar uma tabela em um banco de dados. Sabemos o que é necessário partir do passo 1 como o nome do doce com o preço. Com esta lista, podemos definir o nosso elementos. Elementos em um arquivo DTD são definidos da seguinte forma:
<! ELEMENTO elementname (do tipo de conteúdo ou de conteúdo-modelo)>
- elementnameespecifica o nome do elemento
- Do tipo de conteúdo ou de conteúdo-modelo especifica se o elemento contém dados textuais ou outros elementos
Nosso elementos pode ser um dos três tipos: vazia, sem restrições, ou contentor.
Esvaziar elementos não têm conteúdo, (nome ou numéricas preço, etc) e são marcadas como se <empty-element/>.
<! ELEMENTO storemanager EMPTY>
Irrestritoelementos são naturalmente o oposto do elemento vazio. Eles podem conter qualquer elemento declarado algures na DTD arquivo. Container elementos contêm dados de caracteres e outros elementos.
Antes de especificar os nossos elementos, temos de ser introduzido para alguns símbolos utilizados em DTD arquivos:
- ? - O elemento ocorre zero ou uma vez.
- - Isto pode ser utilizado para especificar múltiplos crianças.
- | - O símbolo é usado como semente ou uma declaração. Este valor ou esse valor é aceitável.
- + - Não existe um mínimo de uma ocorrência.
- *-O elemento ocorre zero ou mais vezes.
<! ELEMENT ProductName (# PCDATA)>
<! ELEMENT preço (# PCDATA)>
<! ELEMENT id (# PCDATA)>
<! ELEMENTO candystore ((doce +))>
<! ELEMENTO doce ((ProductName, id, preço))>
<! ATTLIST elementname attributename ValueType [attributetype] [ "default"]>
O attributename ValueType [attributetype] [ "default"] secção é repetida tantas vezes quantas as necessárias para criar vários atributos para um elemento.
<! ATTLIST ProductName empresa CDATA # REQUIRED>
Agora vamos construir o nosso arquivo DTD.
Primeiro de tudo em um arquivo DTD temos uma transformação instrução.
<? xml version = "1.0" encoding = "UTF-8"?>
Em seguida é preciso especificar o ProductName elemento e seus atributos.
<! ELEMENT ProductName (# PCDATA)>
<! ATTLIST ProductName empresa CDATA # REQUIRED>
Agora podemos especificar os nossos outros elementos:
<! ELEMENT preço (# PCDATA)>
<! ELEMENT id (# PCDATA)>
Seguinte é o nosso candystore contentor com o seu elemento filho doce:
<! ELEMENTO candystore ((doce +))>
Finalmente, temos de especificar o atributo de candystore. O atributo é, na realidade, uma que você pode jogar fora. Mas lembre-se, XML espera que você siga syntax.Recall o elemento candystore linha no arquivo XML:
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Precisamos de definir isso em nosso DTD como um atributo:
<! ATTLIST candystore
xmlns: XSI CDATA # FIXED "http://www.w3.org/2001/XMLSchema-instance"
>
Por último, damos o elemento doce com seus filhos atributos:
<! ELEMENTO doce ((ProductName, id, preço))>
candystore.xml
<? xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE candystore SYSTEM "candystore.dtd">
<candy>
<productName company="XYZ"> lollipops </ ProductName>
<iD> 634847 </ id>
<price> 0,50 </ price>
</ cândi>
<candy>
<productName company="ABC"> Pastilhas </ ProductName>
<iD> 634812 </ id>
<price> 0,75 </ price>
</ cândi>
</ candystore>
candystore.dtd
<? xml version = "1.0" encoding = "UTF-8"?>
<! ELEMENT ProductName (# PCDATA)>
<! ATTLIST ProductName empresa CDATA # REQUIRED>
<! ELEMENT preço (# PCDATA)>
<! ELEMENT id (# PCDATA)>
<! ELEMENTO candystore ((doce +))>
<! ATTLIST candystore
xmlns: XSI CDATA # FIXED "http://www.w3.org/2001/XMLSchema-instance"
>
<! ELEMENTO doce ((ProductName, id, preço))>


Delicious
Digg
Google
Yahoo