XML 模式生成

本主题涉及 XML 模式生成的行为。例如,可以使用从消息定义文件生成的模式在以后验证由 WebSphere Message Broker 编写的 XML 实例文档。

不严格的生成

不严格的生成影响内容验证设置为开放开放定义组合设置为无序集的复杂类型是如何在生成的模式中渲染的。注意,这样的验证模式将允许比 MRM 解析器验证更广范围的消息。

内容验证设置为开放或开放定义
此处,复杂类型(全局或匿名)的内容由 anyType 类型的单个元素替代。下列生成模式用于内容验证设置为开放的复杂类型:
<element name="xmlNameOfMessage">
	<complexType>
		<sequence>
			<any processContent="lax" 
minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
</element>

对于内容验证设置为开放定义的,使用下列模式:(所列的名称空间是包含消息集中定义的所有名称空间。)

<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>

严格的生成

严格的生成影响内容验证设置为开放开放定义组合设置为无序集的复杂类型是如何在生成的模式中渲染的。注意,这样的验证模式将允许比 MRM 解析器验证更窄范围的消息。

严格是缺省生成选项,且在没有消息扩展的情况下,生成匹配消息定义文件中保存的模式的模式。

内容验证设置为开放/开放定义
复杂类型(全局或匿名)将失去包含自定义元素的能力并变为封闭的。
组合设置为无序集
复杂类型(全局或匿名)将失去成为无序的能力并变为序列。

xsd:elements 的渲染

如果生成模式时指定了 XML 物理格式,有线格式定制将应用于逻辑模型。这些属性控制当元素在 XML 有线格式的消息中出现时模型中的元素实际渲染的方式。请参阅XML 呈现选项以获取可用的不同的渲染选项。下面给出的生成的模式示例显示对于局部元素可用的不同渲染选项生成了什么;注意这些示例不修改任何标识特性名称或值特性名称属性的名称空间,并假设 complexType1 中指定的所有元素是模式内置类型字符串。

    <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>

xsd:attributes 渲染

不支持 xsd:Attributes 的渲染。用户只能更改属性的名称。

嵌入式简单类型和复合元素

这些都在消息定义文件中建模,因为元素的 minOccursmaxOccurs 都设置为 0 且具有一个预定义的 ComIbmMrm_xxx 类型之一。 在模式生成期间,这种元素的类型更改为各自 ComIbmMrm_xxx 类型的基本类型。

如果有从这些 ComIbmMrm_xxx 类型继承的全局简单类型,这些更改从相应的 ComIbmMrm_xxx 类型继承。

生成的模式文件将不会出现任何这些 ComIbmMrm_xxx 类型。

例如,带有下面定义的类型的全局元素:

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

将导致生成的模式文件全局元素带有下面定义的相应的 xsd 基本类型:

<element name="globalElement1" type="hexBinary"/>
相关概念
消息建模
消息模型
XML 有线格式:与逻辑模型的关系
相关任务
开发消息模型
使用消息定义文件
使用消息模型对象
相关参考
消息模型引用信息
消息模型对象属性
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ad15780_