Geração de Esquema XML

Este tópico cobre o comportamento da geração de Esquema XML. Por exemplo, você poderia utilizar o esquema gerado a partir de um arquivo de definição de mensagens, para validar em seguida documentos da instância XML gravados pelo WebSphere Message Broker.

Geração Flexível

A geração flexível afeta como os tipos complexos, que possuem Validação de Conteúdo definida como Aberta ou OpenDefined ou possuem Composição definida como UnorderedSet, são processados no esquema gerado. Observe que tal esquema de validação permitirá um intervalo de mensagens maior do que a validação do analisador MRM.

A Validação de Conteúdo Está Definida como Open ou OpenDefined
Aqui, um tipo complexo (global ou anônimo) tem seu conteúdo substituído por um único elemento do tipo anyType. O padrão de geração seguinte é utilizado para tipos complexos com Validação de Conteúdo definido como Open:
<element name="xmlNameOfMessage">
	<complexType>
		<sequence>
			<any processContent="lax"
minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
</element>

Em que Validação de Conteúdo é definido como OpenDefined, é utilizado o seguinte padrão. (Os espaços de nomes listados são todos definidos no conjunto de mensagem que os contêm).

<element name="xmlNameOfMessage">
	<complexType>
		<sequence>
			<any processContent="lax"
  			minOccurs="0" maxOccurs="unbounded"
 namespace="http://www.ns1 http://www.ns2" />
		</sequence>
	</complexType>
</element>
A Composição Está Definida como UnorderedSet
Em que Composição estiver definida como UnorderedSet , para imitar o aspecto não ordenado, é inserida uma opção com a cardinalidade apropriada.Isso é mostrado abaixo.
<element name="xmlNameOfMessage">
	<complexType>
		<sequence maxOccurs="unbounded"
		 minOccurs= "(minOccurs of original sequence) *
          (itens na seqüência original)">
			<choice>
			      .. sequence contents ..
			</choice>
		</sequence>
	</complexType>
</element>

Geração Estrita

A geração estrita afeta como os tipos complexos, que possuem Validação de Conteúdo definida como Open ou OpenDefined ou possuem Composição definida como UnorderedSet, são processados no esquema gerado. Observe que tal esquema de validação permitirá um intervalo de mensagens menor do que a validação do analisador MRM.

Estrita é a opção de geração padrão e gera um esquema que corresponde ao esquema contido no arquivo de definição de mensagem, sem as extensões de modelo.

Validação de Conteúdo Definida como Open/OpenDefined
Um tipo complexo (global ou anônimo) perderá a capacidade de conter elementos de autodefinição e será fechado.
Composição Definida como UnorderedSet
Um tipo complexo (global ou anônimo) perderá a capacidade de ser não ordenado e se tornará uma seqüência.

Processamento de xsd:elements

Se um formato físico XML for especificado durante a geração do esquema, a personalização do formato de ligação será aplicado ao modelo lógico. Essas propriedades controlam como um elemento no modelo é realmente processado quando aparece em uma mensagem para um formato de ligação XML. Consulte Opções de Processamento XML para obter as diferentes opções de processamento disponíveis. Um exemplo de esquema gerado é fornecido a seguir, mostrando o que é gerado para as diferentes opções de processamento disponíveis para elementos locais; observe que esses exemplos não modificam o Espaço de Nomes de nenhuma das propriedades Nome do Atributo de ID ou Nome do Atributo de Valor e supõem que todos os elementos especificados em complexType1 sejam da cadeia de tipo interno do esquema.

    <xsd:complexType name="complexType1">
        <xsd:sequence>
        <!-- Local element Render = 'XMLElement' -->
            <xsd:element name="localElement1" type="xsd:string"/>
        	<!-- Local element Render = 'XMLElementAttrID'
                                         ID Attribute Name = 'id' -->
            <xsd:element name="localElement2">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:string">
                            <xsd:attribute name="id" type="xsd:string"/>
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        	<!-- Local element Render = 'XMLElementAttrVal'
                                        Val Attribute Name = 'val' -->
            <xsd:element name="localElement3">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:string">
                            <xsd:attribute name="val" type="xsd:string"/>
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        	<!-- Local element Render = 'XMLElementAttrIDVal'
        ID Attribute Name = 'id' Val Attribute Name = 'val' -->
            <xsd:element name="localElement4">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:string">
                            <xsd:attribute name="val" type="xsd:string"/>
                            <xsd:attribute name="id" type="xsd:string"/>
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
        <!-- Local element Render = 'XMLAttribute' -->
        <xsd:attribute name="localElement5" type="xsd:string"/>
    </xsd:complexType>

Processamento de xsd:attributes

O processamento de xsd:Attributes não é suportado.O usuário pode apenas alterar o nome do atributo.

Tipos Simples Incorporados e Elementos Compostos

Eles são modelados no arquivo de definição de mensagens como elementos com minOccurs e maxOccurs definidos como 0 e possuem um dos tipos predefinidos ComIbmMrm_xxx. Durante a geração do esquema, o tipo desses elementos é alterado para o tipo base do respectivo tipo ComIbmMrm_xxx.

Se houver tipos simples globais que são herdados de um desses tipos ComIbmMrm_xxx, eles serão alterados para serem herdados do tipo base do tipo ComIbmMrm_xxx correspondente.

Os arquivos esquema gerados não terão nenhuma ocorrência desses tipos ComIbmMrm_xxx.

Por exemplo, o elemento global com tipo definido abaixo:

<element name="globalElement1" type="ns1:ComIbmMrm_BaseValueBinary"/>

resultará no arquivo esquema gerado e em um elemento global com o tipo base xsd correspondente conforme definido abaixo:

<element name="globalElement1" type="hexBinary"/>
Conceitos relacionados
Modelagem de Mensagens
O Modelo de Mensagem
Formato de Ligação XML: Relacionamento com o Modelo Lógico
Tarefas relacionadas
Desenvolvendo Modelos de Mensagens
Trabalhando com um Arquivo de Definição de Mensagem
Trabalhando com Objetos de Modelo de Mensagem
Referências relacionadas
Informações de Referência do Modelo de Mensagens
Propriedades do Objeto de Modelo de Mensagem
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ad15780_