Creazione di file XSD

Un pacchetto del flusso di documenti PIP contiene i file dello schema XML che definiscono i formati del messaggio e i valori accettabili per gli elementi. La seguente procedura descrive in che modo creare questi file in base ai contenuti del file delle specifiche PIP.

Si crea almeno un file XSD per ogni file DTD nel file delle specifiche PIP. Per l'esempio di aggiornamento in PIP 5C4 V01.03.00, dato che il formato del messaggio è cambiato, la procedura descrive in che modo creare il file BCG_5C4RegistrationStatusNotification_V01.03.xsd come esempio. Per informazioni sui file XSD, vedere Convalida.

Per creare i file XSD per il pacchetto del flusso di documenti PIP, procedere come segue:

  1. Importare o caricare il file DTD nell'editor XML come WebSphere Studio Application Developer. Ad esempio, caricare il file 5C4_MS_V01_03_RegistrationStatusNotification.dtd.
  2. Utilizzo dell'editor XML, convertire il DTD in uno schema XML. Le seguenti procedure descrivono in che modo fare ciò utilizzando Application Developer:
    1. Nella schermata di Navigazione del possibile XML, aprire il progetto che contiene il file DTD.
    2. Fare clic con il pulsante destro del mouse sul file DTD e selezionare Genera > schema XML.
    3. Nella schermata generale, digitare o selezionare dove salvare il nuovo file XSD. Nel campo Nome file, digitare il nome del nuovo file XSD. Nel caso dell'esempio, è preferibile digitare un nome come BCG_5C4RegistrationStatusNotification_V01.03.xsd.
    4. Fare clic su Fine.
  3. Compensare per gli elementi che presentano valori di cardinalità multipli nelle indicazioni XML di RosettaNet aggiungendo le specifiche al nuovo file XSD. Le indicazioni mostrano gli elementi nel messaggio utilizzando un albero e visualizzando la cardinalità di ogni elemento alla sinistra dell'elemento.

    In generale, gli elementi nelle indicazioni corrispondono alle definizioni degli elementi nel file DTD. Tuttavia, le indicazioni potrebbero contenere alcuni elementi che presentano gli stessi nomi, ma diverse cardinalità. Dato che il DTD non può fornire la cardinalità in questo caso, è necessario modificare l'XSD. Ad esempio, il file delle indicazioni 5C4_MG_V01_03_00_RegistrationStatusNotification.htm presenta una definizione per ContactInformation online 15 che presenta cinque elementi secondari con le seguenti cardinalità:

    La definizione di ContactInformation sulla riga 150 presenta quattro elementi secondari con le seguenti cardinalità:

    Nel file XSD, tuttavia, ogni elemento secondario di ContactInformation presenta una cardinalità che è conforme ad entrambe le definizioni:

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

    Se si aggiorna il pacchetto del flusso di documenti PIP di un'altra versione del pacchetto e si desidera riutilizzare una definizione dall'altra versione, procedere come segue per ciascuna di queste definizioni:

    1. Eliminare la definizione dell'elemento. Ad esempio, eliminare l'elemento di Contact Information.
    2. Aprire il pacchetto del flusso di documenti PIP della versione da sostituire. Ad esempio, aprire il file BCG_Package_RNIFV02.00_5C4V01.02.zip.
    3. Trovare la definizione che si desidera riutilizzare. Ad esempio, la definizione ContactInformation_type7 nel file BCG_ContactInformation_Types.xsd corrisponde alla definizione necessaria per la riga 15 delle indicazioni.
      <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. Nel nuovo file XSD che si crea per il pacchetto del flusso di documenti PIP aggiornato, creare un riferimento al file XSD che contiene la definizione che si desidera riutilizzare. Ad esempio, creare un riferimento a BCG_ContactInformation_Types.xsd nel file BCG_5C4RegistrationStatusNotification_V01.03.xsd nel seguente modo:
      <xsd:include schemaLocation="BCG_ContactInformation_Types.xsd"/>
    5. Nel nuovo file XSD, eliminare l'attributo di rif di qualsiasi elemento che si riferisce all'elemento eliminato. Aggiungere un attributo del tipo che si riferisce alla definizione che si sta riutilizzando. Ad esempio, nell'elemento productProviderFieldApplicationEngineer, eliminare ref="Informazioni di contatto" ed aggiungere le seguenti informazioni:
      nome="ContactInformation"
        tipo="ContactInformation_type7"

    Se si crea un pacchetto del flusso di documenti PIP o si aggiorna un pacchetto del flusso di documenti PIP, ma la definizione necessaria non è presente nell'altra versione, procedere come segue per ogni istanza dell'elemento trovato nelle istruzioni:

    1. Eliminare la definizione dell'elemento. Ad esempio, eliminare l'elemento delle informazioni di contatto.
    2. Creare la definizione di sostituzione. Ad esempio, creare la definizione ContactInformation_localType1 per farla corrispondere alla definizione nella riga 15 delle indicazioni.
      <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. Per gli eventuali elementi che si riferiscono all'elemento eliminato, eliminare l'attributo di rif e aggiungere un attributo del tipo che si riferisce al tipo complesso appropriato nella procedura precedente. Ad esempio, nell'elemento productProviderFieldApplicationEngineer, eliminare ref="Informazioni di contatto" ed aggiungere le seguenti informazioni:
      name="ContactInformation"
       type="ContactInformation_localType1"   

      In Figura 35 viene mostrato l'elemento productProviderFieldApplicationEngineer prima che venga modificato.

      Figura 35. Elemento productProviderFieldApplicationEngineer prima della modifica
      <xsd:element name="productProviderFieldApplicationEngineer">
         <xsd:complexType>
           <xsd:sequence>
             <xsd:element ref="ContactInformation"/>
           </xsd:sequence>
         </xsd:complexType>
       </xsd:element>

      In Figura 36 viene mostrato l'elemento productProviderFieldApplicationEngineer ù dopo che viene modificato.

      Figura 36. Elemento productProviderFieldApplicationEngineer dopo la modifica
      <xsd:element name="productProviderFieldApplicationEngineer">
         <xsd:complexType>
           <xsd:sequence>
             <xsd:element name="ContactInformation"
                 type="ContactInformation_localType1"/>
           </xsd:sequence>
         </xsd:complexType>
       </xsd:element>
  4. Specificare i valori di enumerazione per gli elementi che possono avere solo valori specifici. Le indicazioni definiscono i valori di enumerazione nelle tabelle nella sezione Informazioni sulle indicazioni.

    Ad esempio, in un messaggio PIP 5C4 V01.03.00, GlobalRegistrationComplexityLevelCode può avere solo i seguenti valori: Superiore alla media, Medio, Massimo, Minimo, Nessuno e Alcuni.

    Se si aggiorna il pacchetto del flusso di documenti PIP in base ad un'altra versione del pacchetto e si desidera utilizzare un insieme di valori di enumerazione dell'altra versione, procedere come segue per ciascun insieme:

    1. Eliminare la definizione per l'elemento. Ad esempio, eliminare l'elemento GlobalRegistrationComplexityLevelCode:
    2. Aprire il pacchetto del flusso di documenti PIP della versione da sostituire. Ad esempio, aprire il file BCG_Package_RNIFV02.00_5C4V01.02.zip.
    3. Trovare la definizione che contiene i valori di enumerazione che si desidera riutilizzare. Ad esempio, la definizione _GlobalRegistrationComplexityLevelCode nel file BCG_GlobalRegistrationComplexityLevelCode.xsd contiene le definizioni del valore di enumerazione definite dalla tabella Istanza entità.
      <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. Nel nuovo file XSD che si crea per il pacchetto del flusso di documenti PIP aggiornato, creare un riferimento al file XSD che contiene la definizione che si desidera riutilizzare. Ad esempio, creare un riferimento in BCG_GlobalRegistrationComplexityLevelCode.xsd e nel file BCG_5C4RegistrationStatusNotification_V01.03.xsd nel seguente modo:
      <xsd:include schemaLocation=
           "BCG_GlobalRegistrationComplexityLevelCode_Types.xsd" />
    5. Nel nuovo file XSD, eliminare l'attributo di rif di qualsiasi elemento che si riferisce all'elemento eliminato. Aggiungere un attributo del tipo che si riferisce alla definizione che si sta riutilizzando. Ad esempio, nell'elemento DesignAssemblyInformation, eliminare ref="GlobalRegistrationComplexityLevelCode" e aggiungere le seguenti informazioni:
      name="GlobalRegistrationComplexityLevelCode"
       type="_GlobalRegistrationComplexityLevelCode"

    Se si crea un pacchetto del flusso di documenti PIP o si aggiorna un pacchetto del flusso di documenti PIP, ma le definizioni del valore di enumerazione necessarie non sono presenti nell'altra versione, eseguire questi passaggi per ogni elemento con i valori enumerati nelle istruzioni:

    1. Eliminare la definizione dell'elemento. Ad esempio, eliminare l'elemento GlobalRegistrationComplexityLevelCode.
    2. Creare la definizione di sostituzione. Ad esempio, creare la definizione GlobalRegistrationComplexityLevelCode_localType ed includere le definizioni del valore di enumerazione come descritto dalla tabella.
      <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. Per gli eventuali elementi che si riferiscono all'elemento eliminato, eliminare l'attributo di rif e aggiungere un attributo del tipo che si riferisce al tipo complesso appropriato nella procedura precedente. Ad esempio, eliminare ref="GlobalRegistrationComplexityLevelCode" e aggiungere le seguenti informazioni:
      name="GlobalRegistrationComplexityLevelCode"
       type="GlobalRegistrationComplexityLevelCode_localType"   

      In Figura 37 viene mostrato l'elemento Element prima che venga modificato.

      Figura 37. Elemento DesignAssemblyInformation prima della modifica
      <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>

      In Figura 38 viene mostrato l'elemento Element dopo che viene modificato.

      Figura 38. Elemento DesignAssemblyInformation dopo la modifica
      <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. Impostare il tipo di dati, la lunghezza minima, la lunghezza massima e la rappresentazione delle entità dei dati. Le Direttive del messaggio XML RosettaNet forniscono queste informazioni nella tabella Entità dei dati commerciali fondamentali:

    Se si aggiorna il pacchetto del flusso di documenti PIP su un'altra versione del pacchetto e si desidera utilizzare una definizione dell'entità dei dati dall'altra versione, procedere come segue per ciascun insieme:

    1. Eliminare la definizione per l'elemento di entità dei dati. Ad esempio, eliminare l'elemento Data e ora.
    2. Aprire il pacchetto del flusso di documenti PIP della versione da sostituire. Ad esempio, aprire il file BCG_Package_RNIFV02.00_5C4V01.02.zip.
    3. Trovare la definizione che si desidera riutilizzare. Ad esempio, il file _common_DateStamp_R nel file BCG_common.xsd contiene la seguente definizione, conforme con le informazioni fornite nelle indicazioni.
      <xsd:simpleType name="_common_DateStamp_R">
         <xsd:restriction base="xsd:string">
           <xsd:pattern value="[0-9]{8}Z" /> 
         </xsd:restriction>
       </xsd:simpleType>
    4. Nel nuovo file XSD che si crea per il pacchetto del flusso di documenti PIP aggiornato, creare un riferimento al file XSD che contiene la definizione che si desidera riutilizzare. Ad esempio, creare un riferimento in BCG_common.xsd nel file BCG_5C4RegistrationStatusNotification_V01.03.xsd come segue:
      <xsd:include schemaLocation="BCG_common.xsd" />
    5. Nel nuovo file XSD, eliminare l'attributo di rif di qualsiasi elemento che si riferisce all'elemento eliminato. Aggiungere un attributo del tipo che si riferisce alla definizione che si sta riutilizzando. Ad esempio, nell'elemento DesignAssemblyInformation, eliminare ref="DateStamp" ed aggiungere le seguenti informazioni:
      name="DateStamp" type="_common_DateStamp_R"  

    Se si crea un pacchetto del flusso di documenti PIP o si aggiorna un pacchetto del flusso di documenti PIP, ma la definizione dell'entità dei dati necessaria non è presente nell'altra versione, procedere come segue per ogni elemento di entità dei dati:

    1. Eliminare la definizione dell'elemento. Ad esempio, eliminare l'elemento Data e ora.
    2. Creare la definizione di sostituzione. Ad esempio, utilizzare il tipo di dati, la lunghezza minima, la lunghezza massima e le informazioni di rappresentazione per creare la definizione DateStamp_localType.
      <xsd:simpleType name="DateStamp_localType">
         <xsd:restriction base="xsd:string">
           <xsd:pattern value="[0-9]{8}Z" /> 
         </xsd:restriction>
       </xsd:simpleType>
    3. Per gli eventuali elementi che si riferiscono all'elemento eliminato, eliminare l'attributo di rif e aggiungere un attributo del tipo che si riferisce al tipo complesso appropriato nella procedura precedente. Ad esempio, eliminare ref="DateStamp" ed aggiungere le seguenti informazioni:
      name="DateStamp" type="DateStamp_localType"

      In Figura 39 viene mostrato l'elemento Element beginDate prima che venga modificato.

      Figura 39. Elemento data di inizio prima della modifica
      <xsd:element name="beginDate">
         <xsd:complexType">
           <xsd:sequence>
             <xsd:element ref="DateStamp"/> 
           </xsd:sequence>
         </xsd:complexType>
       </xsd:element>

      In Figura 40 viene mostrato l'elemento Element beginDate dopo che viene modificato.

      Figura 40. Elemento data di inizio dopo la modifica
      <xsd:element name="beginDate">
         <xsd:complexType">
           <xsd:sequence>
             <xsd:element name="DateStamp" type="DateStamp_localType"/> 
           </xsd:sequence>
         </xsd:complexType>
       </xsd:element>

Copyright IBM Corp. 2003, 2005