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.
É 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. |
É 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
|
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
|
|||
| «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
|
|||
| final | Especifica se outros tipos podem ser derivados desse
tipo
|
|||
| modelGroup | Especifica o modelo de conteúdo do tipo
|
|||
| 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.
|
|||
| «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
|
Atributo |
| final | Aplica-se a elementos globais e especifica que outros
tipos não podem derivar de tipos de elementos globais
|
|||
| form | Especifica se o nome de elemento deve ser qualificado
no documento da instância
|
|||
| 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 |
|
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 |
|
| «listOf» | Dependência | Lista XSD do cliente da dependência O tipo de item é o fornecedor da dependência |
||
| «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
|
|||
| «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
|
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
|
|||
| elementFormDefault | Especifica se as declarações de elemento local devem
utilizar nomes qualificados
|
|||
| 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
|
|||
| 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
|
|||
Nota: Para obter mais informações sobre a definição de faceta, consulte Facetas XSD
|
Representa facetas que o esquema XSD define para especificar:
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
|
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
|