Este tema describe el comportamiento de la generación de esquema XML. Por ejemplo, puede utilizar el esquema generado a partir de un archivo de definición de mensajes para validar posteriormente documentos de instancia XML escritos por WebSphere Message Broker.
La generación flexible afecta al modo en que se devuelven en el esquema generado los tipos complejos que tienen la Validación de contenido establecida en Abierto o Abierto definido o que tienen la Composición establecida en Conjunto no ordenado. Tenga en cuenta que un esquema de validación de este tipo permitirá un rango más amplio de mensajes que la validación del analizador MRM.
<element name="xmlNameOfMessage"> <complexType> <sequence> <any processContent="lax" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>
Cuando Validación de contenido se establece en Abierto definido, se utiliza el patrón siguiente. (Los espacios de nombres listados son todos los que se han definido en el conjunto de mensajes que los contiene.)
<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) * (items in original sequence)"> <choice> .. sequence contents .. </choice> </sequence> </complexType> </element>
La generación estricta afecta al modo en que se devuelven en el esquema generado los tipos complejos que tienen Validación de contenido establecida en Abierto o Abierto definido o que tienen Composición establecida en Conjunto no ordenado. Tenga en cuenta que un esquema de validación de este tipo permitirá un rango más reducido de mensajes que la validación del analizador MRM.
Estricto es la opción de generación por omisión y genera un esquema que coincide con el esquema contenido en el archivo de definición de mensajes, sin las extensiones de modelo.
Si se especifica un formato físico XML al generar el esquema, se aplica la personalización de formato físico al modelo lógico. Estas propiedades controlan cómo se devuelve realmente un elemento del modelo cuando dicho elemento aparece en un mensaje para un formato físico XML. Consulte el apartado Opciones de devolución de mensaje XML para conocer las diferentes opciones de devolución disponibles. Más abajo se proporciona un ejemplo de esquema generado que muestra lo que se genera para las diferentes opciones de devolución disponibles para los elementos locales; observe que estos ejemplos no modifican el espacio de nombres de las propiedades Nombre de atributo de ID o Nombre de atributo de valor y suponen que todos los elementos especificados en complexType1 son de la serie de caracteres de tipo incorporado de 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>
No se soporta la devolución de xsd:Attributes. El usuario sólo puede cambiar el nombre del atributo.
Éstos se modelan en el archivo de definición de mensajes como elementos con Mín apariciones y Máx apariciones establecidos en 0 y tienen uno de los tipos ComIbmMrm_xxx predefinidos. Durante la generación de esquema, el tipo de dichos elementos cambia al tipo base del tipo ComIbmMrm_xxx respectivo.
Si hay tipos simples globales que heredan de uno de estos tipos ComIbmMrm_xxx, éstos cambian para heredar del tipo base del tipo ComIbmMrm_xxx correspondiente.
Estos tipos ComIbmMrm_xxx no aparecerán ninguna vez en los archivos de esquema generados.
Por ejemplo, el elemento global con el tipo definido más abajo:
<element name="globalElement1" type="ns1:ComIbmMrm_BaseValueBinary"/>
producirá el archivo de esquema generado y un elemento global con el tipo base xsd correspondiente como se define más abajo:
<element name="globalElement1" type="hexBinary"/>