---
title: "O que há de novo na versão 1.1 do XML Schema?"
date: "2016-03-21"
categories: 
  - "development"
  - "tools"
  - "xml"
tags: 
  - "altova-online-training"
  - "xml-schema"
  - "xml-schema-1-1"
  - "xmlspy"
description: Explore as principais melhorias introduzidas no XML Schema 1.1, incluindo as asserções e as alternativas condicionais de tipos, concebidas para aumentar a flexibilidade e a validação no desenvolvimento de XML.
---
Status: #blog

Tags:  #altova-online-training #xml-schema #xml-schema-1-1 #xmlspy

Categories: [development](/blog/pt/category/development.md) | [xml](/blog/pt/category/xml.md)
# O que há de novo na versão 1.1 do XML Schema?

Desde a introdução do XML Schema 1.0, este padrão tem sido amplamente adotado. Ao longo dos anos, os desenvolvedores solicitaram diversas alterações, sendo as mais notáveis a capacidade de especificar e validar regras de negócio mais detalhadas, bem como permitir uma evolução mais flexível dos esquemas. Existem inúmeras alterações e melhorias na [Recomendação XML Schema 1.1](http://www.w3.org/TR/xmlschema11-1/) que visam resolver estes problemas.

Vamos analisar as funcionalidades mais importantes e apresentar alguns recursos para aprender mais ou começar imediatamente a utilizar o XML Schema 1.1.

![shutterstock_137938508](/blog/images/shutterstock_137938508.jpg)

<!--more-->

### Descubra as novidades na versão 1.1 do XML Schema

Existe uma explicação detalhada das novas funcionalidades e melhorias presentes no XML Schema 1.1, disponível gratuitamente no nosso.. [Curso de formação online sobre esquemas XML](https://www.altova.com/pt/aot/online-training.html), que pode aceder a qualquer momento e concluir no seu próprio ritmo. Se é um desenvolvedor de esquemas experiente e apenas pretende conhecer as novidades e melhorias introduzidas no XSD 1.1, avance diretamente para o Capítulo 9. Este curso é uma excelente forma de aprender sobre o XML Schema 1.1 e de adaptar rapidamente os seus esquemas para aproveitar as novas funcionalidades.

 

![Formação em XML Schema 1.1](/blog/images/xml-schema-1-1-training.png)

 

Neste artigo, explicarei alguns dos principais aspetos e mostrarei como pode implementar as novas funcionalidades utilizando o XMLSpy. O suporte completo para o XML Schema 1.1 está disponível nas versões 2014 e superiores do XMLSpy, incluindo a validação de ficheiros XSD e de instâncias XML com base no XML Schema 1.1, bem como ferramentas de edição inteligentes para o XSD 1.1 no editor gráfico [XML Schema 1.1](https://www.altova.com/pt/xmlspy/xml-schema-editor.html).

### Afirmações

As asserções, também chamadas de restrições condicionais, no XML Schema 1.1 permitem a validação baseada em regras de políticas de negócio que envolvem mais de um elemento. Estas regras são definidas utilizando expressões XPath. Por exemplo, pode utilizar o novo elemento <assert> para verificar se um valor de despesa é inferior ou igual ao valor permitido, se uma data se encontra dentro de um determinado período, e assim por diante. Neste exemplo, a asserção especifica que a hora de fim de uma reunião deve ser superior à hora de início. Pode ver esta representação na vista de design do XML Schema aqui:

![Afirmações – Visualização Gráfica](https://lh6.ggpht.com/-0AwouJhf1UA/UtREYaoYlRI/AAAAAAAAAbQ/YtTI7Z7spJI/clip_image003_thumb.png?imgmax=800 "Assertions - Graphical View")

 

E no código correspondente:

 

![Aplicações do esquema XML 1.1](https://lh4.ggpht.com/-3cHGIZ4GF6U/UtREbHVLWOI/AAAAAAAAAbg/iFpwT04A808/clip_image004_thumb.png?imgmax=800 "XML Schema 1.1 Assertions")

 

É fácil rever as afirmações existentes num esquema através da vista "Globals", que oferece uma aba "Afirmações" para documentos XML Schema 1.1. Também pode adicionar novas afirmações e selecionar o espaço de nomes XPath padrão aqui.

 

![Adicionar asserções](https://lh5.ggpht.com/-p3B5JogWx24/UtREdQH_lkI/AAAAAAAAAbw/XZobzGyHc-M/clip_image005_thumb.png?imgmax=800 "Adding assertions")

 

Ou, pode defini-los na vista do modelo de conteúdo, clicando com o botão direito do rato num elemento na vista do modelo de conteúdo e selecionando "Adicionar asserção filha". Pode definir o teste XPath diretamente no modelo de conteúdo através da janela de assistência "Detalhes".

 

![Diálogo de afirmações](https://lh4.ggpht.com/-oKQlRSmEUjs/UtREfY8OlJI/AAAAAAAAAb8/4S0voU3k5B0/clip_image006_thumb.png?imgmax=800 "Assertion dialog")

 

Esta capacidade de definir e validar regras de negócio é uma grande vantagem do XML Schema 1.1, e esta representação gráfica ajuda a orientá-lo durante o processo.

### Alternativas para os tipos condicionais

As alternativas de tipos condicionais são outra funcionalidade concebida para tornar os XSDs mais poderosos, adicionando flexibilidade integrada. Estas permitem que um tipo seja atribuído dinamicamente a um elemento com base no valor de um atributo no documento XML. O elemento `xs:alternative` possui dois atributos: `type` e `test`. Aqui está um exemplo utilizando o esquema de "Reuniões" com o qual começámos anteriormente.

 

![Alternativa para estruturas condicionais](https://lh3.ggpht.com/-iPc-_0cC1f4/UtREhR6JsxI/AAAAAAAAAcM/u0exmkn1Pk0/image_thumb.png?imgmax=800 "Conditional type alternative")

 

Se a hora de término da reunião for antes do meio-dia, o tipo da reunião é "Reunião da Manhã". Após o meio-dia, é uma "Reunião da Tarde". Para definir isto no [editor de esquemas XML](https://www.altova.com/pt/xmlspy/xml-schema-editor.html), basta clicar com o botão direito no elemento "Reunião" e escolher "Adicionar filho/alternativa". Utilize a ferramenta de auxílio para preencher os detalhes e introduzir uma expressão XPath, e, em seguida, selecione o tipo que será atribuído dinamicamente ao elemento no menu suspenso "Tipo".

 

![Alternativa de tipo condicional XSD 1.1](https://lh4.ggpht.com/--KlKrmowu-M/UtREis-NKcI/AAAAAAAAAcc/vECoVx9djRY/clip_image007_thumb.png?imgmax=800 "XSD 1.1 conditional type alternative")

 

Agora, qualquer elemento "Meeting" numa instância XML com uma hora de término posterior a 12:00:00 utilizará o tipo "MeetingType AfternoonMeeting". Utilizar um editor gráfico de [XSD](https://www.altova.com/pt/xmlspy/xsd-editor.html) facilita a visualização e a configuração destas relações.

### Atributos globais do esquema

O XML Schema 1.1 permite definir um conjunto de atributos padrão que são aplicados automaticamente a todos os tipos complexos no esquema. Por exemplo, no nosso esquema de "Reuniões", é útil que os atributos "startTime" e "endTime" se apliquem a todos os elementos, sem ter de os adicionar manualmente, o que é moroso e pode levar a erros – especialmente num esquema com um grande número de elementos. O elemento "xs:schema" no XML Schema 1.1 possui um elemento "defaultAttributes" opcional, que identifica um grupo de atributos. (Se existir um elemento específico em que não seja desejável aplicar o(s) atributo(s) padrão, pode especificar isso com "defaultAttributesApply=\"false\"".) É fácil adicionar um "attributeGroup" e definir os atributos padrão na vista "Globals" do editor de XML Schema.

 

![Atributos aplicáveis a todo o esquema](https://lh5.ggpht.com/-kCqG7vqfWx8/UtREj-x9iMI/AAAAAAAAAcs/6cq-TJtaOG8/clip_image008_thumb.png?imgmax=800 "Schema-wide attributes")

 

Em seguida, utilize a caixa de diálogo "Configurações do Esquema", que pode ser acedida através do menu de design do esquema, para selecionar o grupo de atributos que acabou de criar como os atributos padrão, a partir de uma lista suspensa.

 

![Selecionar um grupo de atributos](https://lh3.ggpht.com/-DjkS3RvyNDk/UtRElO-eQoI/AAAAAAAAAc8/Z3L23X4_hz4/clip_image009_thumb.png?imgmax=800 "Selecting an attribute group")

 

Acima, estão algumas das principais atualizações introduzidas pelo XML Schema 1.1. Outras incluem atributos herdáveis, funcionalidades aprimoradas para grupos de substituição, um tipo de dados "xs:error" e outras novidades. Todas estas funcionalidades são explicadas em detalhe, com exemplos práticos, no capítulo 9 do curso de formação online sobre [XML Schema](https://www.altova.com/pt/aot/online-training.html).

### Recursos e ferramentas adicionais:

> [XML Schema 1.1 Recommendation](http://www.w3.org/XML/Schema) XMLSpy [XML Schema 1.1 Editor](https://www.altova.com/pt/xmlspy/xml-schema-editor.html) and [validator](https://www.altova.com/pt/xmlspy/xml-validator.html) RaptorXML [XML Schema 1.1 Validation Server](https://www.altova.com/pt/raptorxml.html) Free Online [XML Schema 1.1 Training](https://www.altova.com/pt/aot/online-training.html)
