创建 PIP 文档流包

因为 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 文档流包涉及下列步骤:

创建 XSD 文件

PIP 文档流包包含 XML 模式文件,这些文件定义了消息格式和对于元素可接受的值。 下面的过程说明如何根据 PIP 规范文件的内容创建这些文件。

对 PIP 规范文件中的每个 DTD 文件至少创建一个 XSD 文件。 在升级到 PIP 5C4 V01.03.00 的示例中,因为消息格式发生变化, 所以该过程以如何创建 BCG_5C4RegistrationStatusNotification_V01.03.xsd 文件作为示例。 要了解关于 XSD 文件的信息,请参阅关于验证

要创建 PIP 文档流包的 XSD 文件,请执行以下步骤:

  1. 将 DTD 文件导入或装入到 XML 编辑器(如 WebSphere Studio Application Developer)中。例如,装入 5C4_MS_V01_03_RegistrationStatusNotification.dtd 文件。
  2. 使用 XML 编辑器,将 DTD 转换成 XML 模式。以下步骤描述如何使用 Application Developer 执行这一步骤:
    1. 在 XML 透视图的“导航”窗格中,打开包含已导入 DTD 文件的项目。
    2. 在 DTD 文件上单击鼠标右键,然后选择生成 > XML 模式
    3. 在“生成”窗格中,输入或选择保存新 XSD 文件的位置。 在“文件名”字段中,输入新 XSD 文件的名称。在本示例中,您可以输入类似 BCG_5C4RegistrationStatusNotification_V01.03.xsd 的名称。
    4. 单击完成
  3. 通过向新 XSD 文件添加规范,修改 RosettaNet XML 指导原则中有多基数值的元素。 该指导原则通过使用树结构,并在每个元素左边显示基数,来显示消息中的元素。

    通常,指导原则中的元素与 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 文档流包,并希望复用另一个版本的 定义,则可以对每个定义执行以下步骤:

    1. 删除元素的定义。例如,删除 ContactInformation 元素。
    2. 打开要替换的 PIP 文档流包版本。 例如,打开 BCG_Package_RNIFV02.00_5C4V01.02.zip 文件。
    3. 找到要重用的定义。例如,BCG_ContactInformation_Types.xsd 文件中的 ContactInformation_type7 定义 与指导原则第 15 页所需的定义匹配。
      <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>
    4. 在您为更新的 PIP 文档流包创建的 XSD 新文件中,创建对包含要重用定义的 XSD 文件的引用。 例如,在 BCG_5C4RegistrationStatusNotification_V01.03.xsd 文件中创建对 BCG_ContactInformation_Types.xsd 的引用,如下所示:
      <xsd:include schemaLocation="BCG_ContactInformation_Types.xsd"/>
    5. 在新的 XSD 文件中,对于引用了您已删除元素的任何元素,删除其 ref 属性。 添加对要重用的定义进行引用的类型属性。 例如,在 productProviderFieldApplicationEngineer 元素中,删除 ref="Contact Information", 然后添加以下信息:
      name="ContactInformation"
       type="ContactInformation_type7"

    如果您正在创建 PIP 文档流包或正在升级 PIP 文档流包,但您需要的定义在 其它版本中不存在,则可以对指导原则中元素的每个实例执行以下步骤:

    1. 删除元素的定义。例如,删除 ContactInformation 元素。
    2. 创建替代的定义。例如,创建 ContactInformation_localType1 定义,以匹配指导原则第 15 行的定义。
      <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>
    3. 对于引用了您已删除元素的任何元素,删除其 ref 属性,然后添加类型属性,它引用 您上一步中定义的复杂类型。例如,在 productProviderFieldApplicationEngineer 元素中,删除 ref="Contact Information", 然后添加以下信息:
      name="ContactInformation"
       type="ContactInformation_localType1"

      图 35显示修改之前的 productProviderFieldApplicationEngineer 元素。

      图 35. 修改之前的 productProviderFieldApplicationEngineer 元素
      <xsd:element name="productProviderFieldApplicationEngineer">
         <xsd:complexType>
         <xsd:sequence>
             <xsd:element ref="ContactInformation"/>
         </xsd:sequence>
       </xsd:complexType>
       </xsd:element>

      图 36显示修改之后的 productProviderFieldApplicationEngineer 元素。

      图 36. 修改后的 productProviderFieldApplicationEngineer 元素
      <xsd:element name="productProviderFieldApplicationEngineer">
         <xsd:complexType>
         <xsd:sequence>
             <xsd:element name="ContactInformation"
                 type="ContactInformation_localType1"/>
         </xsd:sequence>
       </xsd:complexType>
       </xsd:element>
  4. 对于只有特定值的元素,指定其枚举值。 指导原则信息部分的表中定义了枚举值。

    例如,在 PIP 5C4 V01.03.00 消息中,GlobalRegistrationComplexityLevelCode 只能有以下值:Above average、Average、Maximum、 Minimum、None 和 Some。

    如果您正根据另一版本的包更新 PIP 文档流包,并希望复用其它版本的 一组枚举值,则可以对每组值执行以下步骤:

    1. 删除元素的定义。例如,删除 GlobalRegistrationComplexityLevelCode 元素:
    2. 打开要替换的 PIP 文档流包版本。 例如,打开 BCG_Package_RNIFV02.00_5C4V01.02.zip 文件。
    3. 找到包含要重用的枚举值的定义。例如,BCG_GlobalRegistrationComplexityLevelCode.xsd 文件中的 _GlobalRegistrationComplexityLevelCode 定义包含“实体实例”表定义的枚举值定义。
      <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>
    4. 在您为更新的 PIP 文档流包创建的 XSD 新文件中,创建对包含要重用定义的 XSD 文件的引用。 例如,在 BCG_5C4RegistrationStatusNotification_V01.03.xsd 文件中创建对 BCG_GlobalRegistrationComplexityLevelCode.xsd 的引用,如下所示:
      <xsd:include schemaLocation=
           "BCG_GlobalRegistrationComplexityLevelCode_Types.xsd" />
    5. 在新的 XSD 文件中,对于引用了您已删除元素的任何元素,删除其 ref 属性。 添加对要重用的定义进行引用的类型属性。 例如,在 DesignAssemblyInformation 元素中,删除 ref="GlobalRegistrationComplexityLevelCode", 然后添加以下信息:
               name="GlobalRegistrationComplexityLevelCode"
       type="_GlobalRegistrationComplexityLevelCode"

    如果您正在创建或升级 PIP 文档流包,但您需要的枚举值定义在 其它版本中不存在,则可以对指导原则中包含枚举值的每个元素执行以下步骤:

    1. 删除元素的定义。例如,删除 GlobalRegistrationComplexityLevelCode 元素。
    2. 创建替代的定义。例如,创建 GlobalRegistrationComplexityLevelCode_localType 定义并包括下表中所描述的枚举值定义。
      <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>
    3. 对于引用了您已删除元素的任何元素,删除其 ref 属性,然后添加类型属性,它引用 您上一步中定义的复杂类型。例如,删除 ref="GlobalRegistrationComplexityLevelCode",然后添加以下信息:
               name="GlobalRegistrationComplexityLevelCode"
       type="GlobalRegistrationComplexityLevelCode_localType"

      图 37显示了修改之前的 DesignAssemblyInformation 元素。

      图 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 元素。

      图 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>
  5. 设置数据实体的数据类型、最小长度、最大长度和表示。 RosettaNet XML 消息指导原则在“基本业务数据实体”表中提供了这些信息。

    如果您根据另一版本的包更新 PIP 文档流包,并希望复用其它版本的 数据实体,则可以对每个集执行以下步骤:

    1. 删除数据实体元素的定义。例如,删除 DateStamp 元素。
    2. 打开要替换的 PIP 文档流包版本。 例如,打开 BCG_Package_RNIFV02.00_5C4V01.02.zip 文件。
    3. 找到要重用的定义。例如,BCG_common.xsd 文件中的 _common_DateStamp_R 定义包含以下定义,该定义与指导原则中提供的信息一致。
      <xsd:simpleType name="_common_DateStamp_R">
         <xsd:restriction base="xsd:string">
           <xsd:pattern value="[0-9]{8}Z" /> 
           </xsd:restriction>
         </xsd:simpleType>
    4. 在您为更新的 PIP 文档流包创建的 XSD 新文件中,创建对包含要重用定义的 XSD 文件的引用。 例如,在 BCG_5C4RegistrationStatusNotification_V01.03.xsd 文件中创建对 BCG_common.xsd 的引用,如下所示:
      <xsd:include schemaLocation="BCG_common.xsd" />
    5. 在新的 XSD 文件中,对于引用了您已删除元素的任何元素,删除其 ref 属性。 添加对要重用的定义进行引用的类型属性。 例如,在 DesignAssemblyInformation 元素中,删除 ref="DateStamp", 然后添加以下信息:
      name="DateStamp" type="_common_DateStamp_R"

    如果您正在创建或升级 PIP 文档流包,但您需要的数据实体定义在 其它版本中不存在,则可以对每个数据实体元素执行以下步骤:

    1. 删除元素的定义。例如,删除 DateStamp 元素。
    2. 创建替代的定义。例如,用数据类型、最小长度、最大长度和表示等信息创建 DateStamp_localType 定义。
      <xsd:simpleType name="DateStamp_localType">
         <xsd:restriction base="xsd:string">
           <xsd:pattern value="[0-9]{8}Z" /> 
           </xsd:restriction>
         </xsd:simpleType>
    3. 对于引用了您已删除元素的任何元素,删除其 ref 属性,然后添加类型属性,它引用 您上一步中定义的复杂类型。例如,删除 ref="DateStamp",然后添加以下信息:
      name="DateStamp" type="DateStamp_localType"

      图 39显示了修改之前的 beginDate 元素。

      图 39. 修改前的 beginDate 元素
      <xsd:element name="beginDate">
         <xsd:complexType">
         <xsd:sequence>
             <xsd:element ref="DateStamp"/> 
         </xsd:sequence>
       </xsd:complexType>
       </xsd:element>

      图 40显示了修改之后的 beginDate 元素。

      图 40. 修改后的 beginDate 元素
      <xsd:element name="beginDate">
         <xsd:complexType">
         <xsd:sequence>
             <xsd:element name="DateStamp" type="DateStamp_localType"/> 
         </xsd:sequence>
       </xsd:complexType>
       </xsd:element>

创建 XML 文件

创建 PIP 文档流包的 XSD 文件之后,就可以创建 RNIF 包的 XML 文件 和后端集成包的 XML 文件。例如,这些包可以命名为 BCG_Package_RNIFV02.00_5C4V01.03.zip 和 BCG_Package_RNSC1.0_RNIFV02.00_5C4V01.03.zip。以下过程描述如何创建 RNIF 包的 XML 文件:

  1. 从 RNIF PIP 文档流包文件抽取 XML 文件。 如果您正在进行升级,则从以前版本的包(例如,BCG_Package_RNIFV02.00_5C4V01.02.zip)抽取文件。 如果您正在创建新包,则从与要创建的包类似的 PIP 文档流包抽取文件。 例如,如果您正在创建支持两个操作的 PIP 的包,则复制另一个两个操作的 PIP 包中的 XML 文件。
  2. 复制该文件,然后对其进行适当的重命名(例如,RNIFV02.00_5C4V01.03.xml)。
  3. 在新的文件中,更新包含关于 PIP 信息的元素。 例如,下表列出了在 5C4 PIP 中需要更新的信息。请注意,这些信息可能在文件中多次出现。请确保更新了所有实例。
    表 37. 5C4 PIP 更新信息
    要更改的信息 旧值 新值
    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) 不适用 不适用
  4. 打开 PIP 规范文档,用该文档更新下表中列出的信息。 如果您正在进行更新,请将各版本的规范加以比较,因为可能无需更改这些值。
    表 38. PIP 规范中的 5C4 PIP 更新信息
    要更新的信息 描述 5C4 包中的值
    活动名 在表 3-2 中指定 分发注册状态
    发送方角色名称 在表 3-1 中指定 产品供应商
    响应方角色名称 在表 3-1 中指定 需求创建者
    请求操作名 在表 4-2 中指定 注册状态通知
    确认操作名 在表 4-2 中指定(仅用于两个操作 PIP) N/A
  5. 更新包属性值。如果您正在进行更新,请将各版本的规范加以比较,因为可能无需更改这些值。
    注: 如果正在创建后端集成包,则跳过该步骤并转至步骤 6
    表 39. 5C4 PIP 属性更新
    要更新的信息 描述 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
  6. 更新 ns1:Package/ns1:Protocol/GuidelineMap 元素,以除去未使用的 XSD 文件并 添加创建或引用的任何 XSD 文件。

要创建后端集成包,除了以下的不同之处外,重复步骤 16

创建 XML 和 XSD 文件后,就可以创建 PIP 文档流包。

创建包

要创建 RNIF 包,请执行下列步骤:

  1. 创建 GuidelineMaps 目录,将包的 XSD 文件复制到该目录中。
  2. 创建 Packages 目录,将 RNIF XML 文件复制到该目录中。
  3. 转至父目录,创建一个 PIP 文档流包(ZIP 文件),其中包含 GuidelineMaps 和 Packages 目录。 您必须在 ZIP 文件中保留该目录结构。

要创建后端集成包,请执行步骤 13,但是要使用后端集成 XML 文件而不是 RNIF 文件。

创建 PIP 包之后,可以用RNIF 和 PIP 文档流包中的过程上载它。

Copyright IBM Corp. 2003, 2005