Perfil de Transformação XSD

Use os estereótipos no perfil Transformação XSD para representar elementos XSD como um tipo simples, tipo complexo, atributos, elementos e grupos reutilizáveis.

O recurso de modelagem de transformação XSD é ativado quando você seleciona o recurso Perfil de Transformação XSD na página Geral, Recursos da janela Preferências.

Você pode utilizar elementos de modelo UML de pacote, classe, propriedade, associação e dependência para modelar um subconjunto de elementos Extensible Markup Language (XML) Schema Definition (XSD). Porém, o perfilTransformação XSD contém estereótipos que você pode usar para modelar a maioria dos elementos do esquema XSD como tipo simples, tipo complexo, atributo, elemento e grupos reutilizáveis. A vantagem de aplicar o perfilTransformação XSD ao modelo de origem e de aplicar os estereótipos do perfil aos elementos do modelo de origem é que você pode validar seu modelo para erros.

Modelos do Projeto de Modelo XSD

É possível selecionar dois modelos ao criar um projeto de modelagem XSD. Os modelos podem acelerar o desenvolvimento de modelo aplicando o perfilTransformação XSD e fornecendo parte da estrutura necessária para um projeto.

Modelo Descrição
Modelo XSD em Branco Esse modelo cria um novo projeto e um modelo UML que tem o perfilTransformação XSD aplicado.
Modelo XSD Esse modelo cria um novo projeto e um modelo UML que tem o perfilTransformação XSD aplicado. O modelo XSD contém alguma estrutura, incluindo um pacote chamado Blocos de Construção de Modelo XSD. Esse pacote contém conteúdo de modelo que você pode usar para ajudar a construir o modelo XSD. Os blocos de construção possuem as bibliotecas de modelo necessárias e os estereótipos XSD aplicados.

Suporte para a Criação de Elementos de Esquema XSD

É possível criar elementos de esquema XSD específicos com seus estereótipos apropriados automaticamente aplicados. Ao incluir formas em diagramas de formulários livres e de classe, a Paleta fornece ferramentas XSD para gerar os artefatos de modelagem usados pela transformação de UML em XSD. Na visualização Explorador de Projetos e no editor de diagramas, é possível usar o comando Incluir XSD localizado nos menus pop-up para incluir vários elementos do esquema XSD dependendo no contexto da sua seleção.

Se não precisar descrever os elementos do esquema que você está modelando detalhadamente, será possível utilizar então palavras-chave para indicar como a transformação deve gerar elementos XSD.

A tabela a seguir lista os estereótipos do perfil e suas propriedades e valores relacionados.

Estereótipo Elemento Aplicável Propriedades Descrição e Valores das Propriedades Resultado da Transformação
«annotation» Comentário tipo Tipo de anotação: documentação, appinfo Annotation
idioma Linguagem natural da anotação
origem Origem da anotação
«attribute» Propriedade de classe form Especifica se o nome do atributo está qualificado no documento da instância
  • qualified
  • unqualified
  • padrão
O atributo em um grupo de atributos complexos, se for um tipo simples e sua multiplicidade for [0..1]
use Especifica se o atributo é opcional ou necessário
  • optional (padrão)
  • obrigatório
«attributeGroup» Classe     Grupo de atributos
«complexType» Classe anonymous true Nenhuma declaração de tipo complexo de nível mais alto é gerada. As referências a esse classe são geradas como atributos ou declarações de elementos, em que o tipo do atributo ou elemento é o tipo anônimo
false (padrão) Tipo complexo
block Especifica se a substituição do tipo deve ser bloqueada
  • #all, impede que tipos derivados substituam esse tipo
  • extension, impede extensões desse tipo
  • restriction, impede que qualquer restrição substitua esse tipo
  • extension restriction, mesmo efeito que #all
final Especifica se outros tipos podem ser derivados desse tipo
  • #all, impede a derivação desse tipo por outros tipos
  • extension
  • restriction
  • extension restriction
modelGroup Especifica o modelo de conteúdo do tipo
  • all, anonymous devem ser configurados como false
  • choice
  • sequence
maxOccurs, minOccurs Especifica o número mínimo e máximo de vezes que o grupo de seqüências e opções pode ocorrer no tipo complexo

Para um grupo de modelos all, maxOccurs deve ser 1 e minOccurs deve ser 0 ou 1

mixed Especifica se o tipo complexo permite conteúdo combinado.
  • false (padrão)
  • true
«element» Propriedade de uma classe block

Bloqueia a substituição de tipos derivados, permitindo que apenas o tipo original seja utilizado em uma instância

  • #all, impede o uso de tipos derivados no lugar de tipos originais em uma instância
  • extension, impede que as extensões de um tipo substituam o tipo
  • "extension restriction" ou "restriction extension", mesmo efeito que #all
  • " ", cadeia vazia, indica que não há restrições; substitui o valor blockDefault do elemento do esquema
Atributo
final Aplica-se a elementos globais e especifica que outros tipos não podem derivar de tipos de elementos globais
  • #all
  • extension
  • restriction
  • extension restriction
form Especifica se o nome de elemento deve ser qualificado no documento da instância
  • qualified
  • unqualified
  • default, assume por padrão o valor de elementFormDefault do estereótipo do esquema, que assume por padrão unqualified
nillable Especifica se xsi::nil pode ser utilizado na instância para esse elemento; seu valor é configurado como false por padrão
«enumeration» Classe anonymous
  • true
  • false (padrão)
Se true, nenhuma declaração de tipo simples de nível mais alto com facetas de enumeração será criada no esquema e as referências a essa classe serão geradas como declarações de atributos ou elementos com o tipo anonymous como o tipo do atributo ou elemento
Enumeração XSD se a classe tiver um relacionamento de generalização com outra classe que represente um tipo simples
«global» Classe   A classe deve ter apenas uma propriedade

Declaração de elemento de nível mais alto
Declaração de atributo, se a propriedade tiver o <<attribute>>
Nome e tipo são iguais ao nome e tipo da propriedade

«listOf» Dependência     Lista XSD do cliente da dependência

O tipo de item é o fornecedor da dependência

Pode haver apenas uma dependência desse tipo entre duas classes que representam um tipo simples

«modelGroup» Classe anonymous Se true, nenhuma declaração de grupo de nível mais alto será gerada no esquema e as referências a essa classe serão transformadas em uma referência de grupo de modelos O grupo de modelos nomeados que é global e reutilizável. Por padrão, a transformação cria um modelo de seqüência.

As referências a essa classe são transformadas em uma referência de grupo de modelos

modelGroup Especifica o modelo de conteúdo do grupo
  • all, anonymous devem ser configurados como false
  • choice
  • sequence (padrão)
«redefine» Generalização     Um novo esquema que contém os componentes redefinidos e os componentes inalterados do esquema original
«restriction» Generalização     Tipos de esquema simples com uma restrição de valores possíveis para corresponder a um padrão especificado por uma expressão regular.
«schema» Pacote attributeFormDefault Especifica se as declarações de atributo local devem utilizar nomes qualificados
  • qualified
  • unqualified (padrão)
Esquema XSD que possui o mesmo nome que o pacote
blockDefault Especifica o valor padrão do atributo block das declarações de tipo complexo e de elemento

O atributo block determina se a substituição do elemento ou substituição do tipo deve ser bloqueada

  • #all
  • uma lista de uma ou mais das seguintes palavras-chave, separadas por um espaço: extension, restriction ou substitution
elementFormDefault Especifica se as declarações de elemento local devem utilizar nomes qualificados
  • qualified
  • unqualified (padrão)
finalDefault Especifica o valor padrão do atributo final das declarações de tipo complexo, de tipo simples e de elemento

O atributo final especifica se a derivação de tipo poderá ocorrer

  • #all
targetNamespace targetNamespacePrefix Substitui os valores targetNamespace e targetNamespacePrefix especificados na configuração de transformação
«simpleType» Classe anonymous true A classe é tratada como um tipo anônimo e nenhuma declaração de tipo de nível mais alto é gerada
false Tipo simples se a classe tiver uma generalização para um tipo de dados integrado XSD, um outro tipo simples ou uma enumeração XSD
final Especifica se outros tipos podem ser derivados desse tipo
  • #all, nenhuma derivação permitida
  • extension
  • restriction
  • list
  • união
  • fractionDigits
  • comprimento
  • maxExclusive
  • maxInclusive
  • maxLength
  • minExclusive
  • minInclusive
  • minLength
  • pattern
  • totalDigits
  • whiteSpace
Nota: Para obter mais informações sobre a definição de faceta, consulte Facetas XSD
Representa facetas que o esquema XSD define para especificar:
  • Intervalos válidos de valores
  • Restrições em valores
  • Comprimento e precisão de valores
  • Expressões comuns que os valores válidos devem corresponder
  • Processamento do espaço em branco de tipos simples que são derivados por restrição de tipos XSD integrados
Nota: Nem todas as facetas listadas se aplicam a todos os simples. Para obter mais informações, consulte Tipos Simples e Facetas Aplicáveis de Transformações UML-para-XSD
«unionOf» Dependência     A união XSD é gerada a partir do cliente da dependência com o fornecedor da dependência como um membro

Uma classe que representa mais de um tipo simples pode ter mais de uma dependência desse tipo para classes diferentes que representam tipos simples

«wildcard» Propriedade de uma classe processContents Especifica como validar a substituição de atributos e elementos
  • skip, nenhuma validação
  • lax, valida atributos e elementos que possuem declarações recuperáveis e emite erros para valores inválidos
  • strict, procura em um documento de esquema pelo espaço de nomes e valida atributos e elementos (padrão)
Curinga do elemento

Se a propriedade tiver a palavra-chave attribute ou o estereótipo «attribute», um curinga do atributo também será gerado

namespace Especifica os espaços de nomes que podem conter os atributos ou elementos de substituição
  • ##any, qualquer espaço de nomes ou nenhum espaço de nomes
  • ##other, qualquer espaço de nomes diferente do espaço de nomes de destino do documento ou, se o documento de esquema não tiver um espaço de nomes de destino, qualquer espaço de nomes
  • anyURI
  • ##targetNamespace, espaço de nomes de destino do documento de esquema
  • ##local, nenhum espaço de nomes é necessário
Lista separada por espaço em branco de qualquer um dos seguintes itens:
  • ##targetNamespace
  • #local, espaços de nomes específicos
  • ##local


Feedback