sexta-feira, 9 de março de 2012

XML SCHEMA - PARTE II

Um XML Schema simples

Este é um arquivo XML Schema chamado "note.xsd" que define os elementos do documento XML acima ("note.xml"):
  
  ?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.w3schools.com"
  xmlns="http://www.w3schools.com"
  elementFormDefault="qualified">
  
  <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>
  
  </xs:schema>
O elemento note é dito um tipo complexo porque contém outros elementos. Os outros elementos são ditos tipos simples porque não contém outros elementos. Você vai aprender mais sobre tipos simples e complexo nos próximos capítulos.

Uma referência para um DTD

Este documento XML tem uma referência para um DTD:
  
  <?xml version="1.0"?>
  
  <!DOCTYPE note SYSTEM
  "http://www.w3schools.com/dtd/note.dtd">
  
  <note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
  </note>

Uma referência a um XML Schema

Este documento contém uma referência a um XML Schema:
  
  <?xml version="1.0"?>
  
  <note
  xmlns="http://www.w3schools.com"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3schools.com note.xsd">
  
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
  </note>

XSD - O elemento <schema>

O elemento <schema> é o elemento raiz de todo XML Schema!

O elemento <schema>

O elemento <schema> é o elemento raiz de todo XML Schema:
  
  <?xml version="1.0"?>
  
  <xs:schema>
  
  ...
  ...
  
  </xs:schema>
O elemento <schema> pode conter alguns atributos. Uma declaração de Schema geralmente parece com isto:
  
  <?xml version="1.0"?>
  
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.w3schools.com"
  xmlns="http://www.w3schools.com"
  elementFormDefault="qualified">
  
  ...
  ...
  
  </xs:schema>
O seguinte fragmento:
  
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
indica que os elementos e tipos de dados usados no esquema (schema, element, complexType, sequence, string, boolean, etc.) vêm do namespace "http://www.w3.org/2001/XMLSchema". Ele também especifica que os elementos e tipos de dados que vêm de "http://www.w3.org/2001/XMLSchema" devem ser prefixados com xs: !!
Este fragmento:
  
  targetNamespace="http://www.w3schools.com"
indica que os elementos definidos por este esquema (note, to, from, heading, body) vêm do namespace "http://www.w3schools.com" .
Este fragmento:
  
  xmlns="http://www.w3schools.com"
indica que o namespace padrão é "http://www.w3schools.com".
Este fragmento:
  
  elementFormDefault="qualified">
indica que todo elemento usado por uma instância de documento XML que foi declarado neste esquema deve ser qualificado pelo namespace.

Referenciando um Schema em um documento XML

Este documento XML tem uma referência para um XML Schema:
  
  <?xml version="1.0"?>
  
  <note xmlns="http://www.w3schools.com"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3schools.com note.xsd">
  
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
  </note>
Este fragmento:
  
  xmlns="http://www.w3schools.com"
especifica a declaração de namespace padrão. Esta declaração diz ao validador de esquema que os elementos usados neste documento XML são declarados no namespace "http://www.w3schools.com".
Uma vez que você tem uma instância XML Schema do namespace disponível:
  
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
você pode usar o atributo schemaLocation. Este atributo tem dois valores. O primeiro é o namespace usado. O segundo é a localização do esquema XML para se usado pelo namespace:
  
  xsi:schemaLocation="http://www.w3schools.com note.xsd">

Nenhum comentário:

Postar um comentário