Generación de esquema XML

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.

Generación flexible

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.

La Validación de contenido se establece en Abierto o Abierto definido.
Aquí se sustituye el contenido de un tipo complejo (global o anónimo) por un solo elemento de tipo anyType. El patrón de generación siguiente se utiliza para tipos complejos con la Validación de contenido establecida en Abierto:
<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>
La composición se establece en Conjunto no ordenado
Cuando Composición se establece en Conjunto no ordenado, para imitar el aspecto desordenado, se inserta una elección con la cardinalidad apropiada. Esto se muestra a continuación.
<element name="xmlNameOfMessage">
	<complexType>
<sequence maxOccurs="unbounded" 
minOccurs= "(minOccurs of original sequence) * 
          (items in original sequence)">
			<choice>
			      .. sequence contents ..
			</choice>
		</sequence>
	</complexType>
</element>

Generación estricta

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.

Validación de contenido establecida en Abierto/Abierto definido
Un tipo complejo (global o anónimo) perderá la posibilidad de contener elementos autodefinidos y quedará cerrado.
Composición establecida en Conjunto no ordenado
Un tipo complejo (global o anónimo) perderá la posibilidad de estar desordenado y se convertirá en una secuencia.

Devolución de xsd:elements

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>

Devolución de xsd:attributes

No se soporta la devolución de xsd:Attributes. El usuario sólo puede cambiar el nombre del atributo.

Tipos simples y elementos compuestos incorporados

É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"/>
Conceptos relacionados
Modelado de mensajes
El modelo de mensaje
Formato físico XML: relación con el modelo lógico
Tareas relacionadas
Desarrollo de modelos de mensaje
Cómo trabajar con un archivo de definición de mensajes
Cómo trabajar con objetos de modelo de mensaje
Referencia relacionada
Información de referencia de modelo de mensaje
Propiedades de objeto de modelo de mensaje
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ad15780_