创建 PIP 文档流包

因为 RosettaNet 不时会添加 PIP,所以您可能要创建自己的 PIP 包 以支持新的 PIP 或对 PIP 的更新。如果没有其它注明,本节的过程描述了如何创建 PIP 5C4 V01.03.00 的 PIP 文档流包。 Business Integration Connect 提供了 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 的名称。单击完成
  3. 通过向新 XSD 文件添加规范,修改 RosettaNet XML 指导原则中有多基数值的元素。 指导原则通过使用树结构,并显示每个元素左边的基数,来显示消息中的元素:




    通常,指导原则中的元素与 DTD 文件中的元素定义匹配。 但是,指导原则中可能包含一些元素,它们具有相同的名称,但基数不同。 因为 DTD 在此情况下无法提供基数,所以您需要修改 XSD。 例如,5C4_MG_V01_03_00_RegistrationStatusNotification.htm 指导原则 文件在第 15 行有 ContactInformation 的定义,ContactInformation 有 5 个 子元素,其基数如下:

    1 contactName

    0..1 EmailAddress

    0..1 facsimileNumber

    0..1 PhysicalLocation

    0..1 telephoneNumber

    第 150 行的 ContactInformation 定义有 4 个子元素,基数如下:

    1 contactName

    1 EmailAddress

    0..1 facsimileNumber

    1 telephoneNumber

    但是,在 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" 
       

      修改之前的 productProviderFieldApplicationEngineer 元素

      <xsd:element name="productProviderFieldApplicationEngineer">
         <xsd:complexType>
           <xsd:sequence>
             <xsd:element ref="ContactInformation"/>
           </xsd:sequence>
         </xsd:complexType>
       </xsd:element>
       

      修改后的元素 productProviderFieldApplicationEngineer

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




    因此,在 PIP 5C4 V01.03.00 消息中,GlobalRegistrationComplexityLegelCode 只能有以下值: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 文档流包或正在升级 PIP 文档流包,但您需要的枚举值定义在 其它版本中不存在,则可以对指导原则中包含枚举值的每个元素执行以下操作:

    1. 删除元素的定义。例如,删除 GlobalRegistrationComplexityLegelCode 元素。
    2. 创建替代的定义。例如,创建 GlobalRegistrationComplexityLegelCode_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" 
       

      修改前的元素 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>
       

      修改后的元素 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 文档流包或升级 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"
       

      修改前的元素 beginDate

      <xsd:element name="beginDate">
         <xsd:complexType">
           <xsd:sequence>
             <xsd:element ref="DateStamp"/> 
           </xsd:sequence>
         </xsd:complexType>
       </xsd:element>
       

      修改后的元素 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_RNIFV02.00_5C4V01.03.zip 和 BCG_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 中需要更新的信息。请注意,这些信息可能在文件中多次出现,所以请确保更新了所有实例。


    表 8. 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_5C4RegistrationStatusNotification_

    V01.02

    BCG_5C4RegistrationStatusNotification_

    V01.03

    不含文件扩展名的确认消息 XSD 文件名(仅用于两个操作 PIP)

    N/A

    N/A

    请求消息的 XSD 文件中的根元素名称

    Pip5C4RegistrationStatusNotification

    Pip5C4RegistrationStatusNotification

    确认消息的 XSD 文件中的根元素名称(仅适用于两个操作 PIP)

    N/A

    N/A

  4. 打开 PIP 规范文档,用该文档更新下表中列出的信息。 如果您正在进行更新,请将各版本的规范加以比较,因为可能无需更改这些值。


    表 9. PIP 规范中的 5C4 PIP 更新信息
    要更新的信息 描述 5C4 包中的值

    活动名

    在表 3-2 中指定

    分发注册状态

    发送方角色名称

    在表 3-1 中指定

    产品供应商

    响应方角色名称

    在表 3-1 中指定

    需求创建者

    请求操作名

    在表 4-2 中指定

    注册状态通知

    确认操作名

    在表 4-2 中指定(仅用于两个操作 PIP)

    N/A

  5. 更新包属性值。如果您正在进行更新,请将各版本的规范加以比较,因为可能无需更改这些值。


    表 10. 5C4 PIP 属性更新
    要更新的信息 描述 5C4 包中的值 XML 文件中的元素路径

    NonRepudiationRequired

    在表 3-3 中指定

    N

    ns1:Package

    ns1:Protocol

    ns1:Process

    ns1:Attribute(它的 ATTRIBUTEKEY 是 NonRepudiationRequired)

    ns1:AttributeValue

    AttributePickListItem

    ATTRVALUEKEY

    NonRepudiationOfReceipt

    在表 3-3 中指定

    N

    ns1:Package

    ns1:Protocol

    ns1:Process

    ns1:Attribute(它的 ATTRIBUTEKEY 是 NonRepudiationOfReceipt)

    ns1:AttributeValue

    AttributePickListItem

    ATTRVALUEKEY

    DigitalSignatureRequired

    在表 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 文件,如 BCG_common.xsd 的以下示例所示。

要创建后端集成包,除了以下的不同之处外,可重复上述过程:

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

创建包

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

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

要创建后端集成包,可重复上述过程,但是要使用后端集成 XML 文件而不是 RNIF 文件。

创建 PIP 包之后,可以用上载 RNIF 包的过程上载它。

Copyright IBM Corp. 1997, 2004