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ísticaDTDXML Schema (XSD)
SintaxePrópria (não XML)Baseada em XML
Tipos de dadosMuito limitadaTipos nativos (xsd:string, xsd:date, xsd:unsignedInt, etc.)
Ordem dos elementosObrigatória conforme declaraçãoMais flexível (modelo complexo, sequências, escolha)
Suporte para chaves/referênciasLimitadoSuporta xsd:key, xsd:keyref, xsd:unique
Reutilização de tiposPobreSuporta 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.
  • type pode ser um tipo simples (p. ex., xsd:string) ou um tipo complexo nomeado (p. ex., Employee).
  • minOccurs e maxOccurs controlam 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:restriction e xsd:pattern, xsd:minInclusive, etc.

Exemplo (fragmento):

$$<xsd:element name="employeeSalary" type="xsd:unsignedInt"/>$$

3.4 Unicidade, Chaves e Referências

  • xsd:unique impõe unicidade dentro de um conjunto selecionado por xsd:selector e xsd:field.
  • xsd:key define uma chave única (similar a PK).
  • xsd:keyref cria uma referência a uma xsd: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)

  1. Declaração do esquema e namespace:
    $$<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">$$
  2. Documentação/anotações (opcional):
    $$xsd:annotation<xsd:documentation xml:lang="en">Descrição</xsd:documentation></xsd:annotation>$$
  3. Declaração do elemento raiz e seu tipo (inline ou por referência de tipo nomeado).
  4. Definição de tipos complexos (xsd:complexType) com xsd:sequence, xsd:choice ou xsd:all.
  5. Restrições de unicidade e chaves (xsd:unique, xsd:key, xsd:keyref).

5. Exemplo prático: esquema resumido para uma entidade Empresa (trecho)

Fra

Zaregistruj se pro celé shrnutí
FlashcardsTeste de conhecimentoResumoPodcastMapa mental
Começar grátis

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)

## 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`. - `type` pode ser um tipo simples (p. ex., `xsd:string`) ou um tipo complexo nomeado (p. ex., `Employee`). - `minOccurs` e `maxOccurs` controlam 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:restriction` e `xsd:pattern`, `xsd:minInclusive`, etc. Exemplo (fragmento): $$<xsd:element name="employeeSalary" type="xsd:unsignedInt"/>$$ ### 3.4 Unicidade, Chaves e Referências - `xsd:unique` impõe unicidade dentro de um conjunto selecionado por `xsd:selector` e `xsd:field`. - `xsd:key` define uma chave única (similar a PK). - `xsd:keyref` cria uma referência a uma `xsd: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) 1. Declaração do esquema e namespace: $$<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">$$ 2. Documentação/anotações (opcional): $$<xsd:annotation><xsd:documentation xml:lang="en">Descrição</xsd:documentation></xsd:annotation>$$ 3. Declaração do elemento raiz e seu tipo (inline ou por referência de tipo nomeado). 4. Definição de tipos complexos (`xsd:complexType`) com `xsd:sequence`, `xsd:choice` ou `xsd:all`. 5. Restrições de unicidade e chaves (`xsd:unique`, `xsd:key`, `xsd:keyref`). ## 5. Exemplo prático: esquema resumido para uma entidade Empresa (trecho) Fra