This chapter provides an overview of the XML Schema utility and discusses how to generate the XML Schema.
Note. The XML Schema utility has been superseded by PeopleTools Message Schema Builder, which is a part of PeopleSoft Integration Broker.
PeopleSoft Open Integration Framework enables near real-time messaging and transactions by using a format that is based on XML to convey information between diverse applications in a standard way. To take advantage of this standardization, you must obtain clear XML definitions (schemas) for each application message, component interface, or business interlink.
The XML Schema utility provides the following features:
Output options for the XML Schema utility, document type definition (DTD), or BizTalk definition for all application messages.
The ability to create an XML definition for a single object, for all of the objects, or for all of the objects by a specific owner.
A single flat file for each XML definition that is written to your system’s %TEMP directory (when you use the Microsoft Windows client) or the server’s common access file directory (when you use PeopleSoft Internet Architecture).
An application foundation for future standards of XML definitions.
This section discusses how to generate the XML Schema.
Access the Generate XML Schema page (Enterprise Components, Integration Definitions, Review XML Schema).
Use the Generate XML Schema (EO_GEN_XML_DATA) page to generate DTDs, XML schemas, and BizTalk definitions.
App Msg Selection Criteria (application message selection criteria) |
Select application selection message criteria. Values are All Msg (all messages), Channel, Owner ID, and Single Msg (single message). Depending on the selection criteria, you can enter the selection value (if already known) or search for the value. |
Generate DTD Spec |
Select for DTD spec output format. |
Generate XML Schema |
Select for XML schema output format. |
Generate Biztalk Definition |
Select for BizTalk definition output format. |
Generate |
Click to generate the selected output formats. |
The utility queries the relevant PeopleTools tables to generate the selected types of XML schemas and writes the results to the server’s file directory or your system’s Temp directory, depending on the client that you use.
To produce an XML schema, DTD, or BizTalk definition:
Define the selection criteria for application messages, component interfaces, and business interlinks.
Select XML schemas, DTDs, or BizTalk definitions for application message, component interface, and business interlink objects.
PeopleCode sends a query to the PeopleTools tables to create the selected types of XML definitions.
The XML Schema utility then writes the definitions to the file directory as specified by the PS_SERVDIR environment variable when you are using PeopleSoft Internet Architecture or the %TEMP directory of your system when you are using the Microsoft Windows client.
The following code shows three samples of output for the same application message (in this case, MARKET_RATE_TYPE_FULLSYNC) in BizTalk, DTD, and XML schema formats.
Example: BizTalk
The following code shows MARKET_RATE_TYPE_FULLSYNC in BizTalk format:
<BizTalk xmlns="urn:schemas-biztalk-org:BizTalk/biztalk-0.81.xml"> <Body> <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"> <xsd:element name="MARKET_RATE_TYPE_FULLSYNC" type="MARKET_RATE_TYPE_FULLSYNCType"/> <xsd:complexType name="MARKET_RATE_TYPE_FULLSYNCType"> <xsd:sequence> <xsd:element name="FieldTypes" type="FieldTypesType"/> <xsd:element name="MsgData" type="MsgDataType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="FieldTypesType"> <xsd:sequence> <xsd:element name="RT_TYPE_TBL" type="FieldTypesRT_TYPE_TBLType"/> <xsd:element name="PSCAMA" type="PSCAMA"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="FieldTypesRT_TYPE_TBLType"> <xsd:sequence> <xsd:element name="RT_TYPE" type="FieldTypesFieldType"/> <xsd:element name="DESCR" type="FieldTypesFieldType"/> <xsd:element name="DESCRSHORT" type="FieldTypesFieldType"/> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required" value="R"/> </xsd:complexType> <xsd:complexType name="PSCAMA"> <xsd:sequence> <xsd:element name="LANGUAGE_CD" type="LANGUAGE_CDType" minOccurs="0" maxOccurs "1"/> <xsd:element name="AUDIT_ACTN" type="AUDIT_ACTNType"/> <xsd:element name="BASE_LANGUAGE_CD" type="BASE_LANGUAGE_CDType" minOccurs="0"maxOccurs="1"/> <xsd:element name="MSG_SEQ_FLG" type="MSG_SEQ_FLGType" minOccurs="0" maxOccurs= "1"/> <xsd:element name="PROCESS_INSTANCE" type="PROCESS_INSTANCEType" minOccurs="0" maxOccurs="1"/> <xsd:element name="PUBLISH_RULE_ID" type="PUBLISH_RULE_IDType" minOccurs="0" maxOccurs="1"/> <xsd:element name="MSGNODENAME" type="MSGNODENAMEType" minOccurs="0" maxOccurs= "1"/> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required" value="R"/> </xsd:complexType> <xsd:complexType name="LANGUAGE_CDType" > <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="AUDIT_ACTNType" > <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="BASE_LANGUAGE_CDType" > <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="MSG_SEQ_FLGType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="PROCESS_INSTANCEType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="PUBLISH_RULE_IDType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="MSGNODENAMEType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="MsgDataType"> <xsd:sequence> <xsd:element name="Transaction"> <xsd:complexType> <xsd:sequence> <xsd:element name="RT_TYPE_TBL" type="MsgDataRT_TYPE_TBLType"/> <xsd:element name="PSCAMA" type="PSCAMA"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MsgDataRT_TYPE_TBLType"> <xsd:sequence> <xsd:element name="RT_TYPE"> <xsd:simpleType> <xsd:restriction base="xsd:string" > <xsd:pattern value="[A-Z]{1-5}" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="DESCR"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value=".{1-30}" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="DESCRSHORT"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value=".{1-10}" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required" value="R"/> </xsd:complexType> <xsd:complexType name="FieldTypesFieldType"> <xsd:attribute name="type" type="fieldtypes"/> </xsd:complexType> <xsd:simpleType name="fieldtypes"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="CHAR"/> <xsd:enumeration value="NUMBER"/> <xsd:enumeration value="DATE"/> <xsd:enumeration value="DATETIME"/> <xsd:enumeration value="TIME"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> </Body> </BizTalk>
Example: DTD
The following code shows MARKET_RATE_TYPE_FULLSYNC in DTD format:
<!ELEMENT MARKET_RATE_TYPE_FULLSYNC (FieldTypes, MsgData)> <!ENTITY % recordtypes "class (R | SR) #REQUIRED" > <!ENTITY % fieldtypes "type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED" > <!ELEMENT FieldTypes (RT_TYPE_TBL, PSCAMA)> <!ELEMENT PSCAMA (LANGUAGE_CD?, AUDIT_ACTN, BASE_LANGUAGE_CD?, MSG_SEQ_FLG?, PROCESS_INSTANCE?, PUBLISH_RULE_ID?, MSGNODENAME?)> <!ATTLIST PSCAMA class (R | SR) #REQUIRED> <!ELEMENT LANGUAGE_CD (#PCDATA)> <!ATTLIST LANGUAGE_CD type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT AUDIT_ACTN (#PCDATA)> <!ATTLIST AUDIT_ACTN type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT BASE_LANGUAGE_CD (#PCDATA)> <!ATTLIST BASE_LANGUAGE_CD type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT MSG_SEQ_FLG (#PCDATA)> <!ATTLIST MSG_SEQ_FLG type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT PROCESS_INSTANCE (#PCDATA)> <!ATTLIST PROCESS_INSTANCE type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT PUBLISH_RULE_ID (#PCDATA)> <!ATTLIST PUBLISH_RULE_ID type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT MSGNODENAME (#PCDATA)> <!ATTLIST MSGNODENAME type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT RT_TYPE_TBL (RT_TYPE, DESCR, DESCRSHORT)> <!ATTLIST RT_TYPE_TBL class (R | SR) #REQUIRED> <!ELEMENT RT_TYPE (#PCDATA)> <!ATTLIST RT_TYPE type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT DESCR (#PCDATA)> <!ATTLIST DESCR type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT DESCRSHORT (#PCDATA)> <!ATTLIST DESCRSHORT type (CHAR | NUMBER | DATE | TIME | DATETIME) #IMPLIED> <!ELEMENT MsgData (Transaction)> <!ELEMENT Transaction (RT_TYPE_TBL, PSCAMA)>
Example: XML Schema
The following code shows MARKET_RATE_TYPE_FULLSYNC in XML schema format:
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"> <xsd:element name="MARKET_RATE_TYPE_FULLSYNC" type="MARKET_RATE_TYPE_FULLSYNCType"/> <xsd:complexType name="MARKET_RATE_TYPE_FULLSYNCType"> <xsd:sequence> <xsd:element name="FieldTypes" type="FieldTypesType"/> <xsd:element name="MsgData" type="MsgDataType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="FieldTypesType"> <xsd:sequence> <xsd:element name="RT_TYPE_TBL" type="FieldTypesRT_TYPE_TBLType"/> <xsd:element name="PSCAMA" type="PSCAMA"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="FieldTypesRT_TYPE_TBLType"> <xsd:sequence> <xsd:element name="RT_TYPE" type="FieldTypesFieldType"/> <xsd:element name="DESCR" type="FieldTypesFieldType"/> <xsd:element name="DESCRSHORT" type="FieldTypesFieldType"/> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required" value="R"/> </xsd:complexType> <xsd:complexType name="PSCAMA"> <xsd:sequence> <xsd:element name="LANGUAGE_CD" type="LANGUAGE_CDType" minOccurs="0" maxOccurs= "1"/> <xsd:element name="AUDIT_ACTN" type="AUDIT_ACTNType"/> <xsd:element name="BASE_LANGUAGE_CD" type="BASE_LANGUAGE_CDType" minOccurs="0" maxOccurs="1"/> <xsd:element name="MSG_SEQ_FLG" type="MSG_SEQ_FLGType" minOccurs="0" maxOccurs= "1"/> <xsd:element name="PROCESS_INSTANCE" type="PROCESS_INSTANCEType" minOccurs="0" maxOccurs="1"/> <xsd:element name="PUBLISH_RULE_ID" type="PUBLISH_RULE_IDType" minOccurs="0" maxOccurs="1"/> <xsd:element name="MSGNODENAME" type="MSGNODENAMEType" minOccurs="0" maxOccurs= "1"/> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required" value="R"/> </xsd:complexType> <xsd:complexType name="LANGUAGE_CDType" > <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="AUDIT_ACTNType" > <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="BASE_LANGUAGE_CDType" > <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="MSG_SEQ_FLGType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="PROCESS_INSTANCEType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="PUBLISH_RULE_IDType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="MSGNODENAMEType"> <xsd:attribute name="type" type="fieldtypes" use="optional"/> </xsd:complexType> <xsd:complexType name="MsgDataType"> <xsd:sequence> <xsd:element name="Transaction"> <xsd:complexType> <xsd:sequence> <xsd:element name="RT_TYPE_TBL" type="MsgDataRT_TYPE_TBLType"/> <xsd:element name="PSCAMA" type="PSCAMA"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MsgDataRT_TYPE_TBLType"> <xsd:sequence> <xsd:element name="RT_TYPE"> <xsd:simpleType> <xsd:restriction base="xsd:string" > <xsd:pattern value="[A-Z]{1-5}" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="DESCR"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value=".{1-30}" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="DESCRSHORT"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value=".{1-10}" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required" value="R"/> </xsd:complexType> <xsd:complexType name="FieldTypesFieldType"> <xsd:attribute name="type" type="fieldtypes"/> </xsd:complexType> <xsd:simpleType name="fieldtypes"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="CHAR"/> <xsd:enumeration value="NUMBER"/> <xsd:enumeration value="DATE"/> <xsd:enumeration value="DATETIME"/> <xsd:enumeration value="TIME"/> </xsd:restriction> </xsd:simpleType> </xsd:schema>