1 / 23

Tecnologias XML XML Schema

Tecnologias XML XML Schema. XML Schema. Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica: Os elementos e atributos que podem constar do documento A ordem e número dos elementos filhos

makoto
Download Presentation

Tecnologias XML XML Schema

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tecnologias XMLXML Schema

  2. XML Schema • Documento XML válido • Um documento Schema especifica as regras para a validação de um documento XML • Um Schema especifica: • Os elementos e atributos que podem constar do documento • A ordem e número dos elementos filhos • Tipos de dados para os elementos e atributos • Um Schema define umaclasse de documentos. Documentos XML que referenciam esse Schema são instâncias dessa classe

  3. XML Schema XML

  4. <?xml version="1.0" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://your_namespace" elementFormDefault="qualified"> <xsd:element name="pessoas" > <xsd:complexType> <xsd:sequence> <xsd:element name="pessoa" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="nome" type="xsd:string" /> <xsd:element name="data-nascimento" > <xsd:complexType> <xsd:sequence> <xsd:element name="ano" type="xsd:int" /> <xsd:element name="mes" type="xsd:int" /> <xsd:element name="dia" type="xsd:int" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="bi" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>

  5. XML Schema • Estrutura de um Schema <?xml version="1.0" ?> <xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema targetNamespace=http://your_namespace elementFormDefault="qualified"> <xsd:element ... <!– definição de elementos e atributos --> ... </xsd:schema> Declaração XML Root namespace prefixo xsd

  6. XML Schema • NamespacesXML Schema <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> • Especifica as entidades para definir um Schema: element, schema,simpleType (XML Schema Schema) • URI -> http://www.w3.org/2001/XMLSchema • Prefixo por convenção é xsd:

  7. XML Schema • XML Schema Instance Namespaces xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance • Deve ser referenciado por documentos instância (XML) que usam entidades definidas neste schema como: xsi:schemaLocation xsi:noNamespaceSchemaLocation

  8. XML Schema • Referenciar um Schema no XML – (1) • Atributoxsi:noNamespaceSchemaLocation pessoas.xml <?xml version="1.0" encoding="ISO-8859-1"?> <pessoas xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation=“pessoas.xsd" > ... Documento pessoas.xsd

  9. XML Schema • Referenciar um Schema no XML – (2) • Atributoxsi:schemaLocation pessoas.xml pessoas.xsd <?xml version="1.0" encoding="ISO-8859-1"?> <pessoas xmlns=http://your_namespace xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://your_namespace pessoas.xsd" > ... <?xml version="1.0" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://your_namespace" elementFormDefault="qualified"> …

  10. XML Schema • Definição de elementos • Elemento xsd:element • O atributo name especifica o nome do elementono XML • O atributo type define o tipo de dados do elemento <xsd:element name="montante" type="xsd:float"> <montante>123.56</montante>

  11. XML Schema • Tipos simples primitivos <xsd:element name="ano" type="xsd:int" /> • Tipos de dados para o conteúdo textual de um elemento ou atributo String float date (ccyy-mm-dd) anyURI decimal time (hh:mm:ss.sss) .... • Hierarquia de tipos de dados primitivos anySimpleType –> decimal –> integer -> long ...

  12. XML Schema • Tipos simples derivados • Derivação por restrição, lista ou união • Elemento xsd:simpleType • xsd:restrictiondefine restrições adicionais aos valores do elemento <xsd:element name="percentagem"> <xsd:simpleType > <xsd:restriction base="xsd:int"> <xsd:minInclusive value="0" /> <xsd:maxInclusive value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:element>

  13. XML Schema • Operadores de restrição – facets • xsd:minInclusive - >= • xsd:maxInclusive - <= • xsd:length – tamanho fixo (string, listas) • xsd:totaldigits – o numero máximo de dígitos • xsd:pattern – expressão regular • xsd:fractionDigits - número de casas decimais. • enumeration – valores numa enumeração

  14. XML Schema • Novos tipos de dados simples • Atributo name de xsd:simpleType • Usados para definir tipos de dados de elementos <xsd:simpleType name="Toperador"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="91" /> <xsd:enumeration value="93" /> <xsd:enumeration value="96" /> </xsd:restriction> </xsd:simpleType> <xsd:element name="indicativo"type="Toperador">

  15. XML Schema • Exemplos de restrições • xsd:length • xsd:pattern <xsd:simpleType name="Tcodigo"> <xsd:restriction base="xsd:string"> <xsd:length value="7" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Tbi"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{7}"/> </xsd:restriction> </xsd:simpleType>

  16. XML Schema • Derivação por união • Elemento xsd:union • A instância pode conter um dos valores especificados pelo atributo memberTypes <xsd:simpleType name="Tmes" > <xsd:union memberTypes="Tmesstr Tmesnum" /> </xsd:simpleType>

  17. XML Schema • Derivação por lista • Elemento xsd:list • Exemplo XML <web>http://www.dei.isep.ipp.pt http://w2ks.dei.isep.ipp.pt</web> <xsd:simpleType name="Tenderecosweb" > <xsd:list itemType="xsd:anyURI" /> </xsd:simpleType>

  18. XML Schema • Tipo Composto • Os elementos de tipo composto podem conter elementos filhos e atributos • Um elemento com atributos é sempre do tipo composto • declarado usando o elemento complexType <xsd:element name="data-nascimento" > <xsd:complexType> <xsd:sequence> <xsd:element name="ano" type="xsd:int" /> <xsd:element name="mes" type="xsd:int" /> <xsd:element name="dia" type="xsd:int" /> </xsd:sequence> </xsd:complexType> </xsd:element>

  19. XML Schema • Composição dos sub-elementos num tipo composto • sequence – especifica uma sequência com uma ordem fixa • choice - especifica uma escolha de um elemento, entre os elementos declarados • all – elementos são opcionais (?) e não têm ordem fixa

  20. XML Schema • Restrições de ocorrência • definir o modo como os elementos ocorrem • Atributos minOccurse maxoccurs • Usados nos operadores de composição ou na declaração de elementos <xsd:element name=“grupo” > <xsd:complexType> <xsd:sequence maxOccurs=“2” > <element name=“aluno” type=“Taluno”> <xsd:element name="autor" type="xsd:string" minOccurs="1" maxOccurs="unbounded" />

  21. Declaração de atributos • Elemento xsd:attribute • O atributo name especifica o nome e o atributo type o tipo de dados • o tipo de dados é do tipo simples primitivo ou derivado • declaração é feita dentro do elemento complexType depois dos elementos • Atributo use especifica a ocorrência • required - o atributo é obrigatório • optional - o atributo é opcional (por omissão) • prohibited - o atributo deve ser omitido

  22. Exemplo Schema com atributos <xsd:element name="pessoa" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="nome" type="xsd:string" /> <xsd:element name=“dnascimento" type="xsd:date" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> Atributo depois dos elementos <pessoa id=“P123"> <nome>António José Silva</nome> <dnascimento>2004-07-12</dnascimento> </pessoa>

More Related