因为 RosettaNet 不时会添加 PIP,所以您可能要创建自己的 PIP 包 以支持新的 PIP 或对 PIP 的更新。如果没有其它注明,本部分的过程描述了如何创建 PIP 5C4 V01.03.00 的 PIP 文档流包。 WebSphere Partner Gateway 提供了 PIP 5C4 V01.02.00 的 PIP 文档 流包。因此这里的过程实际上记录了如何执行升级操作。 但是,创建 PIP 文档流包的过程是相似的,并且这些过程说明了创建过程以外的其它步骤。
在开始之前,请从 www.rosettanet.org 下载 PIP 规范的最新版本, 如果您执行的是升级操作,则还需要以前的版本。 例如,如果您正在执行以下过程中描述的升级操作,则需要下载 5C4_DistributeRegistrationStatus_V01_03_00.zip 和 5C4_DistributeRegistrationStatus_V01_02_00.zip。规范中包括以下文件类型:
创建或更新 PIP 文档流包涉及下列步骤:
PIP 文档流包包含 XML 模式文件,这些文件定义了消息格式和对于元素可接受的值。 下面的过程说明如何根据 PIP 规范文件的内容创建这些文件。
对 PIP 规范文件中的每个 DTD 文件至少创建一个 XSD 文件。 在升级到 PIP 5C4 V01.03.00 的示例中,因为消息格式发生变化, 所以该过程以如何创建 BCG_5C4RegistrationStatusNotification_V01.03.xsd 文件作为示例。 要了解关于 XSD 文件的信息,请参阅关于验证。
要创建 PIP 文档流包的 XSD 文件,请执行以下步骤:
通常,指导原则中的元素与 DTD 文件中的元素定义匹配。 但是,指导原则中可能包含一些元素,它们具有相同的名称,但基数不同。 因为 DTD 在此情况下无法提供基数,所以您需要修改 XSD。 例如,5C4_MG_V01_03_00_RegistrationStatusNotification.htm 指导原则 文件在第 15 行有 ContactInformation 的定义,ContactInformation 有 5 个 子元素,其基数如下:
第 150 行的 ContactInformation 定义有 4 个子元素,基数如下:
但是,在 XSD 文件中,ContactInformation 的每个子代都有与两个定义都符合的基数:
<xsd:element name="ContactInformation"> <xsd:complexType> <xsd:sequence> <xsd:element ref="contactName"/> <xsd:element maxOccurs="1" minOccurs="0" ref="EmailAddress"/> <xsd:element maxOccurs="1" minOccurs="0" ref="facsimileNumber"/> <xsd:element maxOccurs="1" minOccurs="0" ref="PhysicalLocation"/> <xsd:element maxOccurs="1" minOccurs="0" ref="telephoneNumber"/> </xsd:sequence> </xsd:complexType> </xsd:element>
如果您根据另一版本的包更新 PIP 文档流包,并希望复用另一个版本的 定义,则可以对每个定义执行以下步骤:
<xsd:complexType name="ContactInformation_type7"> <xsd:sequence> <xsd:element name="contactName" type="common_FreeFormText_R"/> <xsd:element name="EmailAddress" type="common_EmailAddres_R" minOccurs="0"/> <xsd:element name="facsimileNumber" type="common_CommunicationsNumber_R" minOccurs="0"/> <xsd:element name="PhysicalLocation" type="PhysicalLocation_type1" minOccurs="0" /> <xsd:element name="telephoneNumber" type="common_CommunicationsNumber_R minOccurs="0" /> </xsd:sequence> </xsd:complexType>
<xsd:include schemaLocation="BCG_ContactInformation_Types.xsd"/>
name="ContactInformation" type="ContactInformation_type7"
如果您正在创建 PIP 文档流包或正在升级 PIP 文档流包,但您需要的定义在 其它版本中不存在,则可以对指导原则中元素的每个实例执行以下步骤:
<xsd:complexType name="ContactInformation_localType1"> <xsd:sequence> <xsd:element ref="contactName"/> <xsd:element maxOccurs="1" minOccurs="0" ref="EmailAddress"/> <xsd:element maxOccurs="1" minOccurs="0" ref="facsimileNumber"/> <xsd:element maxOccurs="1" minOccurs="0" ref="PhysicalLocation"/> <xsd:element maxOccurs="1" minOccurs="0" ref="telephoneNumber"/> </xsd:sequence> </xsd:complexType>
name="ContactInformation"
type="ContactInformation_localType1"
图 35显示修改之前的 productProviderFieldApplicationEngineer 元素。
<xsd:element name="productProviderFieldApplicationEngineer">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ContactInformation"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
图 36显示修改之后的 productProviderFieldApplicationEngineer 元素。
<xsd:element name="productProviderFieldApplicationEngineer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactInformation"
type="ContactInformation_localType1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
例如,在 PIP 5C4 V01.03.00 消息中,GlobalRegistrationComplexityLevelCode 只能有以下值:Above average、Average、Maximum、 Minimum、None 和 Some。
如果您正根据另一版本的包更新 PIP 文档流包,并希望复用其它版本的 一组枚举值,则可以对每组值执行以下步骤:
<xsd:simpleType name="_GlobalRegistrationComplexityLevelCode"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Above average"/> <xsd:enumeration value="Average"/> <xsd:enumeration value="Maximum"/> <xsd:enumeration value="Minimum"/> <xsd:enumeration value="None"/> <xsd:enumeration value="Some"/> </xsd:restriction> </xsd:simpleType>
<xsd:include schemaLocation= "BCG_GlobalRegistrationComplexityLevelCode_Types.xsd" />
name="GlobalRegistrationComplexityLevelCode"
type="_GlobalRegistrationComplexityLevelCode"
如果您正在创建或升级 PIP 文档流包,但您需要的枚举值定义在 其它版本中不存在,则可以对指导原则中包含枚举值的每个元素执行以下步骤:
<xsd:simpleType name="GlobalRegistrationComplexityLevelCode_localType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Above average"/> <xsd:enumeration value="Average"/> <xsd:enumeration value="Maximum"/> <xsd:enumeration value="Minimum"/> <xsd:enumeration value="None"/> <xsd:enumeration value="Some"/> </xsd:restriction> </xsd:simpleType>
name="GlobalRegistrationComplexityLevelCode" type="GlobalRegistrationComplexityLevelCode_localType"
图 37显示了修改之前的 DesignAssemblyInformation 元素。
<xsd:element name="DesignAssemblyInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0"
ref="assemblyComments"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="demandCreatorTrackingIdentifier"/>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="DesignPartInformation"/>
<xsd:element ref="DesignRegistrationIdentification"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="GeographicRegion"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="GlobalRegistrationComplexityLevelCode"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="GlobalRegistrationInvolvementLevelCode"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="RegistrationStatus"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
图 38显示了修改之后的 DesignAssemblyInformation 元素。
<xsd:element name="DesignAssemblyInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0"
ref="assemblyComments"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="demandCreatorTrackingIdentifier"/>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="DesignPartInformation"/>
<xsd:element ref="DesignRegistrationIdentification"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="GeographicRegion"/>
<xsd:element maxOccurs="1" minOccurs="0"
name="GlobalRegistrationComplexityLevelCode"
type="GlobalRegistrationComplexityLevelCode_localType"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="GlobalRegistrationInvolvementLevelCode"/>
<xsd:element maxOccurs="1" minOccurs="0"
ref="RegistrationStatus"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
如果您根据另一版本的包更新 PIP 文档流包,并希望复用其它版本的 数据实体,则可以对每个集执行以下步骤:
<xsd:simpleType name="_common_DateStamp_R"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{8}Z" /> </xsd:restriction> </xsd:simpleType>
<xsd:include schemaLocation="BCG_common.xsd" />
name="DateStamp" type="_common_DateStamp_R"
如果您正在创建或升级 PIP 文档流包,但您需要的数据实体定义在 其它版本中不存在,则可以对每个数据实体元素执行以下步骤:
<xsd:simpleType name="DateStamp_localType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{8}Z" /> </xsd:restriction> </xsd:simpleType>
name="DateStamp" type="DateStamp_localType"
图 39显示了修改之前的 beginDate 元素。
<xsd:element name="beginDate">
<xsd:complexType">
<xsd:sequence>
<xsd:element ref="DateStamp"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
图 40显示了修改之后的 beginDate 元素。
<xsd:element name="beginDate">
<xsd:complexType">
<xsd:sequence>
<xsd:element name="DateStamp" type="DateStamp_localType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
创建 PIP 文档流包的 XSD 文件之后,就可以创建 RNIF 包的 XML 文件 和后端集成包的 XML 文件。例如,这些包可以命名为 BCG_Package_RNIFV02.00_5C4V01.03.zip 和 BCG_Package_RNSC1.0_RNIFV02.00_5C4V01.03.zip。以下过程描述如何创建 RNIF 包的 XML 文件:
要更改的信息 | 旧值 | 新值 |
---|---|---|
PIP 标识 | 5C4 | 5C4 |
PIP 版本 | V01.02 | V01.03 |
不含文件扩展名的请求消息 DTD 文件名 | 5C4_MS_V01_02_
RegistrationStatusNotification |
5C4_MS_V01_03_
RegistrationStatusNotification |
不含文件扩展名的确认消息 DTD 文件名(仅用于两个操作的 PIP) | N/A | N/A |
不含文件扩展名的请求消息 XSD 文件名 | BCG_5C4RegistrationStatus
Notification_V01.02 |
BCG_5C4RegistrationStatus
Notification_V01.03 |
不含文件扩展名的确认消息 XSD 文件名(仅用于两个操作 PIP) | N/A | N/A |
请求消息的 XSD 文件中的根元素名称 | Pip5C4RegistrationStatus
通知 |
Pip5C4RegistrationStatus
通知 |
确认消息的 XSD 文件中的根元素名称(仅适用于两个操作 PIP) | 不适用 | 不适用 |
要更新的信息 | 描述 | 5C4 包中的值 |
---|---|---|
活动名 | 在表 3-2 中指定 | 分发注册状态 |
发送方角色名称 | 在表 3-1 中指定 | 产品供应商 |
响应方角色名称 | 在表 3-1 中指定 | 需求创建者 |
请求操作名 | 在表 4-2 中指定 | 注册状态通知 |
确认操作名 | 在表 4-2 中指定(仅用于两个操作 PIP) | N/A |
要更新的信息 | 描述 | 5C4 包中的值 | XML 文件中的元素路径 |
---|---|---|---|
NonRepudiation
必需的 |
在表 3-3 中指定 | N | ns1:Package
ns1:Protocol ns1:Process ns1:Attribute(它的 ATTRIBUTEKEY 是 NonRepudiationRequired) ns1:AttributeValue AttributePickListItem ATTRVALUEKEY |
NonRepudiationOf
接收方 |
在表 3-3 中指定 | N | ns1:Package
ns1:Protocol ns1:Process ns1:Attribute(它的 ATTRIBUTEKEY 是 NonRepudiationOfReceipt) ns1:AttributeValue AttributePickListItem ATTRVALUEKEY |
DigitalSignature
必需的 |
在表 5-1 中指定 | Y | ns1:Package
ns1:Protocol ns1:Process ns1:Attribute(它的 ATTRIBUTEKEY 是 DigitalSignatureRequired) ns1:AttributeValue AttributePickListItem ATTRVALUEKEY |
TimeToAcknowledge | 在表 3-3 中指定 | 2
(120 分钟) |
ns1:Package
ns1:Protocol ns1:Process ns1:Attribute(它的 ATTRIBUTEKEY 是 TimeToAcknowledge) ns1:AttributeValue ATTRVALUE |
TimeToPerform | 在表 3-3 中指定 | 2
(120 分钟) |
ns1:Package
ns1:Protocol ns1:Process ns1:Attribute(它的 ATTRIBUTEKEY 是 TimeToPerform) ns1:AttributeValue ATTRVALUE |
RetryCount | 在表 3-3 中指定 | 3 | ns1:Package
ns1:Protocol ns1:Process ns1:Attribute(它的 ATTRIBUTEKEY 是 RetryCount) ns1:AttributeValue ATTRVALUE |
要创建后端集成包,除了以下的不同之处外,重复步骤 1 到 6:
创建 XML 和 XSD 文件后,就可以创建 PIP 文档流包。
要创建 RNIF 包,请执行下列步骤:
要创建后端集成包,请执行步骤 1 到 3,但是要使用后端集成 XML 文件而不是 RNIF 文件。
创建 PIP 包之后,可以用RNIF 和 PIP 文档流包中的过程上载它。