Um Exemplo XSD
On Setembro 29, 2021 by adminEste capítulo irá demonstrar como escrever um Esquema XML. Você também aprenderá que um esquema pode ser escrito de diferentes maneiras.
Um documento XML
Vamos dar uma olhada neste documento XML chamado “shiporder”.xml”:
Criar um esquema XML
Agora queremos criar um esquema para o documento XML acima.
Comecemos abrindo um novo arquivo que chamaremos “shiporder.xsd”. Para criar o esquema podemos simplesmente seguir a estrutura no documento XML e definir cada elemento como o encontramos. Começaremos com a declaração XML padrão seguida pelo elemento xs:schema que define um esquema:
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
…
</xs:schema>
No esquema acima usamos o namespace padrão (xs), e o URI associado a este namespace é a definição da linguagem Schema, que tem o valor padrão de http://www.w3.org/2001/XMLSchema.
Próximo, temos de definir o elemento “shiporder”. Este elemento tem um atributo e contém outros elementos, por isso o consideramos como um tipo complexo. Os elementos filhos do elemento “shiporder” é rodeado por um elemento xs:sequence que define uma sequência ordenada de sub elementos:
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
</xs:complexType>
</xs:element>
>
Então temos de definir o elemento “orderperson” como um tipo simples (porque ele não contém quaisquer atributos ou outros elementos). O tipo (xs:string) é prefixado com o prefixo do namespace associado ao esquema XML que indica um esquema pré-definido tipo de dados:
Next, temos de definir dois elementos que são do tipo complexo: “shipto” e “item”. Começamos por definir o elemento “shipto”:
Com esquemas podemos definir o número de ocorrências possíveis para um elemento com os atributos maxOccurs e minOccurs. maxOccurs especifica o número máximo de ocorrências para um elemento e minOccurs especifica o número mínimo de ocorrências para um elemento. O valor padrão para maxOccurs e minOccurs é 1!
Agora podemos definir o elemento “item”. Este elemento pode aparecer várias vezes dentro de um elemento “shiporder”. Isto é especificado definindo o atributo maxOccurs do elemento “item” como “unbounded” o que significa que pode haver tantas ocorrências do elemento “item” quantas o autor desejar. Observe que o elemento “nota” é opcional. Especificamos isso definindo o atributo minOccurs como zero:
Agora podemos declarar o atributo do elemento “shiporder”. Como este é um atributo requerido especificamos use=”required”.
Note: As declarações de atributos devem vir sempre por último:
Aqui está a lista completa do ficheiro do esquema chamado “shiporder”.xsd”:
Divide the Schema
O método de desenho anterior é muito simples, mas pode ser difícil de ler e manter quando os documentos são complexos.
O próximo método de desenho é baseado na definição de todos os elementos e atributos primeiro, e depois referir-se a eles usando o atributo ref.
Aqui está o novo desenho do ficheiro do esquema (“shiporder.xsd”):
Utilizar Tipos Nomeados
O terceiro método de desenho define classes ou tipos, o que nos permite reutilizar as definições dos elementos. Isto é feito nomeando os elementos SimpleTypes e ComplexTypes, e então apontar para eles através do atributo type do elemento.
Aqui está o terceiro design do arquivo de esquema (“shiporder.xsd”):
O elemento de restrição indica que o datatype é derivado de um datatype de espaço de nomes de esquema XML W3C. Então, o seguinte fragmento significa que o valor do elemento ou atributo deve ser um valor string:
O elemento de restrição é mais frequentemente usado para aplicar restrições aos elementos. Veja as seguintes linhas do esquema acima:
<xs:restriction base=”xs:string”>
<xs:pattern value=”{6}”/>
</xs:restrição>
</xs:simpleType>
>
Isto indica que o valor do elemento ou atributo deve ser uma string, deve ser exactamente seis caracteres numa linha, e esses caracteres devem ser um número de 0 a 9.
Deixe uma resposta