Tutorial de XML

XML INÍCIO Introdução ao XML XML Como usar Árvore XML Sintaxe XML Elementos XML Atributos XML Namespaces XML Exibição XML XML HttpRequest Analisador de XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validador de XML XML DTD Esquema XML Servidor XML Exemplos XML Teste de XML Certificado XML

XML AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

XML DOM

Introdução ao DOM Nós DOM Acesso ao DOM Informações do nó DOM Lista de nós DOM Travessia do DOM Navegação DOM Valores de obtenção do DOM Nós de alteração do DOM Remoção de nós do DOM Substituir nós DOM DOM Criar nós DOM Adicionar nós Nós clones DOM Exemplos de DOM

Tutorial XPath

Introdução ao XPath Nós XPath Sintaxe XPath Eixos XPath Operadores XPath Exemplos de XPath

Tutorial XSLT

Introdução ao XSLT Idiomas XSL Transformação XSLT XSLT <modelo> XSLT <valor-de> XSLT <para-cada> XSLT <classificar> XSLT <if> XSLT <escolha> Aplicar XSLT XSLT no cliente XSLT no servidor XSLT Editar XML Exemplos de XSLT

Tutorial XQuery

Introdução ao XQuery Exemplo de XQuery XQuery FLWOR XQuery HTML Termos de XQuery Sintaxe XQuery Adicionar XQuery Seleção de XQuery Funções XQuery

XML DTD

Introdução DTD Blocos de construção de DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Exemplos de DTD

Esquema XSD

Introdução ao XSD XSD Como fazer XSD <esquema> Elementos XSD Atributos XSD Restrições XSD

Complexo XSD

Elementos XSD XSD vazio Apenas elementos XSD Somente texto XSD XSD Misto Indicadores XSD XSD <qualquer> XSD <qualquer atributo> Substituição XSD Exemplo de XSD

Dados XSD

Cadeia XSD Data XSD XSD Numérico XSD Misc Referência XSD

Serviços da Web

Serviços XML XML WSDL XML SOAP XML RDF XML RSS

Referências

Tipos de nós DOM Nó DOM Lista de nós DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentário DOM DOM XMLHttpRequest Analisador de DOM Elementos XSLT Funções XSLT/XPath

Restrições/facetas XSD


As restrições são usadas para definir valores aceitáveis ​​para elementos ou atributos XML. Restrições em elementos XML são chamadas de facetas.


Restrições de Valores

O exemplo a seguir define um elemento chamado "age" com uma restrição. O valor da idade não pode ser inferior a 0 ou superior a 120:

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrições em um conjunto de valores

Para limitar o conteúdo de um elemento XML a um conjunto de valores aceitáveis, usaríamos a restrição de enumeração.

O exemplo abaixo define um elemento chamado "carro" com uma restrição. Os únicos valores aceitáveis ​​são: Audi, Golf, BMW:

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O exemplo acima também poderia ter sido escrito assim:

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

Nota: Neste caso o tipo "carType" pode ser usado por outros elementos porque não faz parte do elemento "car".



Restrições sobre uma série de valores

Para limitar o conteúdo de um elemento XML para definir uma série de números ou letras que podem ser usados, usaríamos a restrição de padrão.

O exemplo abaixo define um elemento chamado "letra" com uma restrição. O único valor aceitável é UMA das letras MINÚSCULAS de a a z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo define um elemento chamado "initials" com uma restrição. O único valor aceitável é TRÊS das letras MAIÚSCULAS de a a z:

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo também define um elemento chamado "iniciais" com uma restrição. O único valor aceitável é TRÊS das letras MINÚSCULAS OU MAIÚSCULAS de a a z:

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo define um elemento chamado "choice" com uma restrição. O único valor aceitável é UMA das seguintes letras: x, y, OR z:

<xs:element name="choice">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[xyz]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo define um elemento chamado "prodid" com uma restrição. O único valor aceitável é CINCO dígitos em uma sequência, e cada dígito deve estar no intervalo de 0 a 9:

<xs:element name="prodid">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Outras Restrições sobre uma Série de Valores

O exemplo abaixo define um elemento chamado "letra" com uma restrição. O valor aceitável é zero ou mais ocorrências de letras minúsculas de a a z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo também define um elemento chamado "letra" com uma restrição. O valor aceitável é um ou mais pares de letras, cada par consistindo de uma letra minúscula seguida de uma letra maiúscula. Por exemplo, "sToP" será validado por este padrão, mas não "Stop" ou "STOP" ou "stop":

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z][A-Z])+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo define um elemento chamado "gender" com uma restrição. O único valor aceitável é masculino OU feminino:

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

O próximo exemplo define um elemento chamado "password" com uma restrição. Deve haver exatamente oito caracteres em uma linha e esses caracteres devem ser letras minúsculas ou maiúsculas de a a z ou um número de 0 a 9:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9]{8}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrições de caracteres de espaço em branco

Para especificar como os caracteres de espaço em branco devem ser tratados, usaríamos a restrição de espaço em branco.

Este exemplo define um elemento chamado "endereço" com uma restrição. A restrição de espaço em branco é definida como "preservar", o que significa que o processador XML NÃO removerá nenhum caractere de espaço em branco:

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Este exemplo também define um elemento chamado "endereço" com uma restrição. A restrição de espaço em branco é definida como "substituir", o que significa que o processador XML SUBSTITUIRÁ todos os caracteres de espaço em branco (alimentações de linha, tabulações, espaços e retornos de carro) por espaços:

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Este exemplo também define um elemento chamado "endereço" com uma restrição. A restrição de espaço em branco é definida como "recolher", o que significa que o processador XML REMOVERÁ todos os caracteres de espaço em branco (alimentações de linha, tabulações, espaços, retornos de carro são substituídos por espaços, espaços à esquerda e à direita são removidos e vários espaços são reduzidos a um único espaço):

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrições de Comprimento

Para limitar o comprimento de um valor em um elemento, usaríamos as restrições length, maxLength e minLength.

Este exemplo define um elemento chamado "senha" com uma restrição. O valor deve ter exatamente oito caracteres:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Este exemplo define outro elemento chamado "senha" com uma restrição. O valor deve ter no mínimo cinco caracteres e no máximo oito caracteres:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrições para tipos de dados

Constraint Description
enumeration Defines a list of acceptable values
fractionDigits Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero
length Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero
maxExclusive Specifies the upper bounds for numeric values (the value must be less than this value)
maxInclusive Specifies the upper bounds for numeric values (the value must be less than or equal to this value)
maxLength Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero
minExclusive Specifies the lower bounds for numeric values (the value must be greater than this value)
minInclusive Specifies the lower bounds for numeric values (the value must be greater than or equal to this value)
minLength Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero
pattern Defines the exact sequence of characters that are acceptable
totalDigits Specifies the exact number of digits allowed. Must be greater than zero
whiteSpace Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled