• Nenhum resultado encontrado

XML (eXtensible Markup Language) trata-se de uma linguagem extensível (meta-linguagem) padronizada pelo World Wide Web Consortium (W3C, 2006) com a qual é possível criar elementos de acordo com a aplicação que estiver sendo modelada, dando importância ao conteúdo e à estrutura da informação, sem haver preocupação com a apresentação. Diferentemente do XML, o HTML é um exemplo típico de linguagem que possui elementos relacionados com a forma que o conteúdo deve ser apresentado. Pode-se dizer que a linguagem XML viabiliza a representação e o uso de documentos estruturados.

Figura 8 – Exemplo de um documento XML

A Figura 8 ilustra um exemplo de um documento XML (ou instância XML, como também é conhecido) utilizado em uma livraria para descrever um livro a venda. É importante notar que não há nenhuma identificação de como este documento deve ser apresentado ao usuário, apenas a descrição do conteúdo, um livro, de forma estruturada.

A interpretação ou parsing de um documento XML ocorre através da utilização de um interpretador, que é responsável por analisar o documento obtendo suas informações de conteúdo para processamento.

Um documento XML pode ou não estar associado a uma linguagem específica que define sua estrutura, seu conteúdo e sua semântica, sendo que estas definições podem ser formalizadas através da criação de um Esquema XML (do inglês, XML Schema), por meio de arquivos XSD (XML Schema Definition) (W3C, 2001). Com Esquemas XML é possível especificar construções particulares que restringem a estrutura e o conteúdo dos documentos.

Além de serem usados para a criação de documentos XML, os Esquemas XML também possibilitam a validação destes documentos. Um documento XML é dito válido se estiver de acordo com a estrutura do Esquema fornecido (Figura 9). Não confundir com o conceito de documento XML bem formado que significa que um documento está sintaticamente correto, ou seja, segue as restrições sintáticas.

<livro>

<titulo>Desenvolvendo em Java</titulo> <autor>Pedro Lima</autor>

<editora>Campus books</editora>

<assunto>informatica-programacao</assunto> <isbn>0194977470</isbn>

<edicao>3a</edicao> <preco>R$25</preco> </livro>

Documento XML

(ex. usage_history.xml)

Esquema XML

(ex. tva_metadata.xsd) Validador

Válido / Inválido

Documento XML

(ex. usage_history.xml)

Esquema XML

(ex. tva_metadata.xsd) Validador

Válido / Inválido

Figura 9 – Validação de documento XML

Os principais componentes que compõem um Esquema XML são:

Espaço de nomes (do inglês, namespaces);

• Declaração de elementos – permite a ocorrência de elementos com nomes e tipos determinados;

• Declaração de atributos – permite a ocorrência de atributos com nomes e tipos simples determinados;

• Definição de tipos simples, complexos, derivados, abstratos e anônimos – definem os componentes internos de um Esquema, podendo ser reutilizados em outros componentes de Esquema.

O espaço de nomes é uma forma de evitar conflito de nomes atribuídos aos elementos. Assim, um documento XML pode conter elementos de mesmo nome, porém definidos em vocabulários XML distintos (domínios de aplicação diferentes que ocasionam semânticas também diferentes). Para isso basta indicar qual vocabulário determinado elemento representa. Desta forma é possível utilizar múltiplos Esquemas em um documento XML ou até mesmo serem reusados para criar novos Esquemas, como é o caso desta pesquisa.

Para representar o espaço de nomes, algumas declarações iniciais obrigatórias devem existir em um Esquema XML. Estas declarações correspondem a alguns atributos chave no elemento <schema>. São eles:

• xmlns:prefix="URI" – referência a Esquemas importados e identificados

pelo prefixo prefix. Também pode ser atribuído um prefixo ao Esquema

corrente.

• xmlns="URI" – considerado espaço de nomes padrão caso não seja declarado o prefixo. Conseqüentemente os elementos não necessitam de prefixo.

O endereço utilizado para identificar um espaço de nomes, como visto, é um URI (Uniform Resource Identifier). O URI corresponde a uma string que identifica um recurso na Internet. O URI mais conhecido é a URL (Uniform Resource Locator), outro é a URN (Universal Resource Name) – identificador que independe da localização do recurso.

A Figura 10 apresenta um exemplo de um Esquema com alguns componentes. Neste exemplo é possível verificar que o targetNamespace é

identificado por meio de um URI do tipo URL

(http://www.larc.usp.br/~luizgpa/collaboraTVware/). Adicionalmente, há uma referência a um Esquema importado do MPEG-7 (xmlns:mpeg7) que é do tipo URN (urn:tva:mpeg7:2005).

Figura 10 – Exemplo de componentes de um Esquema XML

Dando continuidade ao exemplo, há a declaração de um elemento denominado Users que é de um tipo complexo (UsersType) definido e declarado no próprio Esquema corrente. Já este tipo complexo é composto por uma seqüência de elementos e um atributo (id). É interessante notar também que o elemento

Preferences é de um tipo importado do MPEG-7

(mpeg7:UserPreferencesType).

Esta seção fez uma breve descrição do XML e de Esquema XML, pois é a base para os padrões de metadados flexíveis a serem empregados nesta pesquisa.

<schema

targetNamespace="http://www.larc.usp.br/~luizgpa/collaboraTVware/"

xmlns:mpeg7="urn:tva:mpeg7:2005"

...>

<!-- Declaração de elemento -->

<element name="Users" type="UsersType"/>

<!-- Declaração de tipo complexo -->

<complexType name="UsersType"> <complexContent>

<sequence>

<!-- Declaração de elementos -->

<element name="Name" type="NameType"/>

<element name="Age" type="nonNegativeInteger"/>

<element name="Preferences" type="mpeg7:UserPreferencesType"/> ...

</sequence>

<!-- Declaração de atributo -->

<attribute name="id" type="nonNegativeInteger" use="required"/> </complexContent>

</complexType> ...

<!-- Declaração de tipo simples -->

<simpleType name="NameType"> <restriction base="string"> <pattern value="[A-Za-z]"/> </restriction>

</simpleType> ...