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.
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.
<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>
<element name="xmlNameOfMessage"> <complexType> <sequence maxOccurs="unbounded" minOccurs= "(minOccurs of original sequence) * (itens na seqüência original)"> <choice> .. sequence contents .. </choice> </sequence> </complexType> </element>
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.
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>
O processamento de xsd:Attributes não é suportado.O usuário pode apenas alterar o nome do atributo.
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"/>