Resumo de Projeto e Normalização de Bancos de Dados
Projeto e Normalização de Bancos de Dados: Guia Completa
Introdução
XML (eXtensible Markup Language) é uma linguagem para representar dados estruturados em formato de árvore. Neste material, focamos em como definir a estrutura válida de documentos XML por meio de DTD e, especialmente, XML Schema, e como validar documentos contra essas definições. Você aprenderá conceitos-chave, sintaxe essencial, exemplos práticos e como usar XPath/XQuery para obter informações de documentos validados.
Definição: Um esquema XML é uma descrição formal (em XML) que especifica os elementos, atributos, tipos de dados e restrições que um documento XML deve cumprir para ser considerado válido.
1. Motivos para usar esquemas e validação
- Garantir a integridade estrutural e semântica dos documentos XML.
- Detectar erros antes de processar dados (ex.: valores ausentes ou tipos incorretos).
- Facilitar a interoperabilidade entre aplicações e serviços web.
Você sabia que o XML Schema permite especificar tipos de dados mais ricos (datas, inteiros sem sinal, cadeias de caracteres) que os DTDs tradicionais?
2. DTD vs XML Schema — comparação rápida
| Característica | DTD | XML Schema (XSD) |
|---|---|---|
| Sintaxe | Própria (não XML) | Baseada em XML |
| Tipos de dados | Muito limitada | Tipos nativos (xsd:string, xsd:date, xsd:unsignedInt, etc.) |
| Ordem dos elementos | Obrigatória conforme declaração | Mais flexível (modelo complexo, sequências, escolha) |
| Suporte para chaves/referências | Limitado | Suporta xsd:key, xsd:keyref, xsd:unique |
| Reutilização de tipos | Pobre | Suporta tipos complexos nomeados, herança por extensão/restrição |
Definição: Um DTD (Document Type Definition) é uma forma antiga de declarar a estrutura de um documento XML; possui sua própria sintaxe e limitações em comparação com o XML Schema.
3. Componentes Básicos de XML Schema
3.1 Espaços de Nomes (namespaces)
- Um esquema geralmente declara o espaço de nomes do vocabulário XSD: por exemplo, xmlns:xsd="http://www.w3.org/2001/XMLSchema".
- O prefixo (p. ex.,
xsd:) é usado para identificar tags da linguagem de esquema.
3.2 Elementos, Tipos e Cardinalidade
- xsd:element define um elemento. Atributos relevantes:
name,type,minOccurs,maxOccurs. typepode ser um tipo simples (p. ex.,xsd:string) ou um tipo complexo nomeado (p. ex.,Employee).minOccursemaxOccurscontrolam a multiplicidade;maxOccurs="unbounded"= repetição ilimitada.
Definição: Um tipo complexo (xsd:complexType) descreve um elemento que contém outros elementos e/ou atributos. Um tipo simples descreve elementos que contêm apenas valores atômicos.
3.3 Tipos Simples e Valores Básicos
- Tipos comuns:
xsd:string,xsd:date,xsd:unsignedInt,xsd:float. - Valores podem ser restringidos por meio de
xsd:restrictionexsd:pattern,xsd:minInclusive, etc.
Exemplo (fragmento):
$$<xsd:element name="employeeSalary" type="xsd:unsignedInt"/>$$
3.4 Unicidade, Chaves e Referências
xsd:uniqueimpõe unicidade dentro de um conjunto selecionado porxsd:selectorexsd:field.xsd:keydefine uma chave única (similar a PK).xsd:keyrefcria uma referência a umaxsd:key(similar a FK).
Exemplo (conceptual):
$$<xsd:key name="employeeSSNKey">$$ $$<xsd:selector xpath="employee"/>$$ $$<xsd:field xpath="employeeSSN"/>$$ $$</xsd:key>$$
4. Estrutura típica de um arquivo XSD (passo a passo)
- Declaração do esquema e namespace:
$$<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">$$ - Documentação/anotações (opcional):
$$xsd:annotation<xsd:documentation xml:lang="en">Descrição</xsd:documentation></xsd:annotation>$$ - Declaração do elemento raiz e seu tipo (inline ou por referência de tipo nomeado).
- Definição de tipos complexos (
xsd:complexType) comxsd:sequence,xsd:choiceouxsd:all. - Restrições de unicidade e chaves (
xsd:unique,xsd:key,xsd:keyref).
5. Exemplo prático: esquema resumido para uma entidade Empresa (trecho)
Fra
Já tem uma conta? Entrar
XML: esquemas e validação
Klíčové pojmy: XML Schema define estructura y tipos en XML, Usar xmlns:xsd para referenciar el vocabulario XSD, xsd:element con type, minOccurs, maxOccurs controla aparición, xsd:complexType describe elementos con hijos, xsd:simpleType con xsd:restriction y xsd:pattern limita valores, xsd:key, xsd:unique, xsd:keyref gestionan integridad referencial, xsd:sequence, xsd:choice, xsd:all controlan orden y alternativas, Validar XML detecta errores antes del procesamiento, XPath selecciona nodos con / y // y calificadores entre [], XQuery construye consultas FLWR sobre XML, Preferir XSD sobre DTD para tipos y reutilización, Validar documentos con procesadores (p. ej., Xerces, lxml)