This appendix contains information about the XML files used to exchange data between the sponsor and CRO sites using Oracle Thesaurus Management System (TMS) Disconnected System Integration (DSI). For more information about DSI, see "Using TMS with Disconnected Systems".
This appendix contains the following sections:
An export job extracts data into one or more XML files that it creates in the Output directory. DSI avoids naming conflicts by generating the XML file name at extraction time. The naming convention for files exported from a CRO site is:
database_global_name
||x_area
||database_sequence_number
.xml
Names for files exported from the sponsor site follow the same convention, except that they also contain the prefix SPN_
.
In both cases, all characters must be in uppercase.
In the Database Global Name portion, any periods (.) are replaced by underscores (_). For an explanation of X Areas, see "Defining X Areas".
If any errors are encountered when the file is imported, the error file will appear with the same name in the error directory.
The XML file has two sections: the metadata definition, which is used to map the metadata of two disconnected systems (see "Defining XML Tag Mappings"), and the actual source data. For information about the tags, see Table B-1, "XML Section Tags" and Table B-2, "XML Data and Metadata Tags".
Example B-1 Source Site XML Sample Structure
<?xml version="1.0" encoding="UTF-8" ?> <TMSDSI> <META_DATA> <INTEGRATION_KEY>OCL</INTEGRATION_KEY> <INSTANCE_NAME>SUN5X13.ORACLE.COM</INSTANCE_NAME> <X_AREA>1</X_AREA> <X_AREA_NAME>TMSLEARN</X_AREA_NAME> <GMT_DIFF>-10:00</GMT_DIFF> </META_DATA> <VT> <VT_ROW> <DICTIONARY_SHORT_NAME>MEDDRAPP</DICTIONARY_SHORT_NAME> <DOMAIN_NAME>ALLDICTIONARIES</DOMAIN_NAME> <VERBATIM_TERM>SORE SORE MUSCLE PAIN</VERBATIM_TERM> <VT_NOTE> <VT_NOTE_ROW> <LABEL_TEXT_UPPER>CODER COMMENT</LABEL_TEXT_UPPER> <OCCURRENCE_ID>1</OCCURRENCE_ID> <DEF_DETAIL_VALUE>another test of special chars %^$#@!~`&*()_-=+|\}{[];:'"<>,.?/</DEF_DETAIL_VALUE> <CREATED_BY LOCAL_FLAG="Y">TMS</CREATED_BY> </VT_NOTE_ROW> </VT_NOTE> </VT_ROW> </VT> <SOURCE_DATA_DEL /> <SOURCE_DATA> <SOURCE_DATA_ROW> <DICTIONARY_SHORT_NAME>MEDDRAPP</DICTIONARY_SHORT_NAME> <DOMAIN_NAME>ALLDICTIONARIES</DOMAIN_NAME> <VERBATIM_TERM>CORN BEEF 1</VERBATIM_TERM> <SOURCE_TERM_ID>300000005</SOURCE_TERM_ID> <OCCURRENCE_ID>0</OCCURRENCE_ID> <EXT_VALUE_1>TMSPROJ</EXT_VALUE_1> <EXT_VALUE_2>TMSSTUDY2</EXT_VALUE_2> <EXT_VALUE_3>M_INV1</EXT_VALUE_3> <EXT_VALUE_4>VISIT2</EXT_VALUE_4> <EXT_VALUE_5>101</EXT_VALUE_5> <EXT_VALUE_6>KEN804</EXT_VALUE_6> <EXT_VALUE_7>OPA</EXT_VALUE_7> <EXT_VALUE_8>66201</EXT_VALUE_8> <OMISSION_STATUS>TMS IN PROGRESS</OMISSION_STATUS> <ACTION_TEXT>Can you clarify please?</ACTION_TEXT> <ACTION_OWNER LOCAL_FLAG="Y">OLS$JSMITH</ACTION_OWNER> </SOURCE_DATA_ROW> </SOURCE_DATA> </TMSDSI>
Example B-2 Sponsor Site XML Sample Structure
<?xml version="1.0" encoding="UTF-8" ?> <TMSDSI> <META_DATA> <INTEGRATION_KEY>OCL</INTEGRATION_KEY> <INSTANCE_NAME>EXAMPLE.ORACLE.COM</INSTANCE_NAME> <X_AREA>1</X_AREA> <X_AREA_NAME>LEARN</X_AREA_NAME> <GMT_DIFF>-04:00</GMT_DIFF> </META_DATA> <VTA_DEL /> <VTI_DEL> <VTI_DEL_ROW><DICTIONARY_SHORT_NAME>WHOC2</DICTIONARY_SHORT_NAME><DOMAIN_NAME>DOM1</DOMAIN_NAME><VERBATIM_TERM>BACK HEADPAIN</VERBATIM_TERM><SOURCE_TERM_ID>36838008</SOURCE_TERM_ID></VTI_DEL_ROW> </VTI_DEL> <VTA> <VTA_ROW><DICTIONARY_SHORT_NAME>WHOC2</DICTIONARY_SHORT_NAME><DOMAIN_NAME>DOM1</DOMAIN_NAME><VERBATIM_TERM>TERM141</VERBATIM_TERM><VT_SUBTYPE>AC</VT_SUBTYPE><DICTIONARY_TERM>PT1</DICTIONARY_TERM><APPROVED_FLAG>Y</APPROVED_FLAG><VTA_GLOBAL_FLAG>N</VTA_GLOBAL_FLAG><VTA_CREATED_BY LOCAL_FLAG="Y">USER1</VTA_CREATED_BY></VTA_ROW> </VTA> <VTI> <VTI_ROW><DICTIONARY_SHORT_NAME>WHOC2</DICTIONARY_SHORT_NAME><DOMAIN_NAME>DOM1</DOMAIN_NAME><VERBATIM_TERM>TERM71</VERBATIM_TERM><SOURCE_TERM_ID>36838005</SOURCE_TERM_ID><OCCURRENCE_ID>2</OCCURRENCE_ID><VT_SUBTYPE>AC</VT_SUBTYPE><DICTIONARY_TERM>PTNONUQ1</DICTIONARY_TERM><DICT_CONTENT_CODE>NONUQ3</DICT_CONTENT_CODE><VTI_CREATED_BY LOCAL_FLAG="Y">USER1</VTI_CREATED_BY></VTI_ROW> </VTI> <VT> <VT_ROW> <DICTIONARY_SHORT_NAME>MEDDRAPP</DICTIONARY_SHORT_NAME> <DOMAIN_NAME>ALLDICTIONARIES</DOMAIN_NAME> <VERBATIM_TERM>CORN BEEF 1</VERBATIM_TERM> <VT_NOTE> <VT_NOTE_ROW> <LABEL_TEXT_UPPER>CODER COMMENT</LABEL_TEXT_UPPER> <OCCURRENCE_ID>1</OCCURRENCE_ID> <DEF_DETAIL_VALUE>SUN5X12 What is this "thing" with corn beef?</DEF_DETAIL_VALUE> <CREATED_BY LOCAL_FLAG="Y">TMS</CREATED_BY> </VT_NOTE_ROW> </VT_NOTE> </VT_ROW> <VT_ROW> <DICTIONARY_SHORT_NAME>MEDDRAPP</DICTIONARY_SHORT_NAME> <DOMAIN_NAME>ALLDICTIONARIES</DOMAIN_NAME> <VERBATIM_TERM>SORE SORE MUSCLE PAIN</VERBATIM_TERM> <VT_NOTE> <VT_NOTE_ROW> <LABEL_TEXT_UPPER>CODER COMMENT</LABEL_TEXT_UPPER> <OCCURRENCE_ID>1</OCCURRENCE_ID> <DEF_DETAIL_VALUE>From SUN5X12 %^$#@!~`&*()_-=+|\}{[];:'"<>,.?/</DEF_DETAIL_VALUE> <CREATED_BY LOCAL_FLAG="Y">TMS</CREATED_BY> </VT_NOTE_ROW> </VT_NOTE> </VT_ROW> </VT> <SOURCE_DATA /> </TMSDSI>
The following tables provide an explanation of the tags used in the required XML file structure.
Tag | Description |
---|---|
|
File data to be processed by DSI. |
|
Metadata information that applies to all data in the XML file. |
|
Source data to be processed. |
|
Individual source data rows. |
|
Source data deletes to be processed. |
|
Individual source data rows to be deleted. |
|
Verbatim Term Assignments. |
|
Verbatim Term Assignments Rows. |
|
Workflow Informative Notes for VTA. |
|
Workflow Informative Note row for VTA. |
|
Declassified Verbatim Term Assignments. |
|
Declassified Verbatim Term Assignments rows. |
|
Verbatim Term Individuals |
|
Verbatim Term Individual Rows. |
|
Deleted Verbatim Term Individuals. |
|
Deleted Verbatim Term Individual Rows. |
Table B-2 XML Data and Metadata Tags
Tag | Description | Data Type (length) | Mand-atory? | Default Value |
---|---|---|---|---|
|
Source Data System Name |
Varchar2(15) |
Y |
N/A |
|
Source Database Name |
Varchar2(93) |
Y |
N/A |
|
Batch Processing Unit |
Number(10) |
Y |
0 |
|
Name; e.g. |
Varchar2(65) |
Y |
N/A |
|
DB's GMT Time Difference |
Varchar2(6) |
N |
N/A |
|
Dictionary Short Name |
Varchar2(10) |
Y |
N/A |
|
Domain Name |
Varchar2(65) |
Y |
N/A |
|
Collected Verbatim Term |
Varchar2(300) |
Y |
N/A |
|
Is the VTA Global or not? |
Varchar2(1) |
N |
N/A |
|
The VTA Creator |
Varchar2(30) |
N |
N/A |
|
MS (Misspelled) or AC (Accepted) |
Varchar2(15) |
N |
N/A |
|
The VTI Creator |
Varchar2(30) |
N |
N/A |
|
VTA or VTI |
Varchar2(15) |
N |
N/A |
|
DICT_CONTENT_CODE of the Dictionary term |
Varchar2(30) |
N |
N/A |
|
Dictionary Term |
Varchar2(300) |
N |
N/A |
|
Informative Note Label |
Varchar2(30) |
N |
N/A |
|
Does the Informative Note apply to all versions? |
Varchar2(1) |
N |
N/A |
|
Informative Note Creator |
Varchar2(30) |
N |
N/A |
|
Informative Note Text |
CLOB |
N |
N/A |
|
Informative Note Status |
Varchar2(15) |
N |
N/A |
|
Source Data ID (PK) |
Number(15) |
Y |
N/A |
|
Source Data ID (PK) |
Number(10) |
Y |
0 |
|
Alternative Source Data Key |
Varchar2(60) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
User Defined Data Value |
Varchar2(30) |
N |
N/A |
|
Omission Status ( |
Varchar2(15) |
N |
N/A |
|
Person to whom the Action is assigned |
Varchar2(30) |
N |
N/A |
|
Action Text |
Varchar2 (2000) |
N |
N/A |
|
VTA Approved Flag |
Varchar2(1) |
Y |
N |
CROs using a system other than TMS for dictionary coding should validate their XML files before sending them to the sponsor. Sponsors working with CROs operating without TMS should provide them with the following information about how to do this:
Modify the XML file you have created for export to the sponsor so that its TMSDSI element (at the top of the file) references the .xsd file. (You must remove this reference when you send the XML file to the sponsor.) For example:
<TMSDSI
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="dsi_
sponsor
.xsd">
Put the .xsd file into the same directory as the XML file.
From that directory, if you are running on an Oracle database, invoke the Oracle tool oraxml to validate the XML file against the XML schema:
oraxml -schema
xmlfilename
.xml
This tool is included with Oracle Database. You must install the XML Toolkit. See the Oracle Database documentation for more information.
If you are not running on an Oracle database, you can find a tool on the Internet for verifying XML files against XML schemas.
If there are any errors, you must fix them. The sponsor cannot process the file if its XML structure is invalid for the TMS XML schema.
Example B-3 Sponsor Schema Validation Text
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation> TMS schema to validate DSI XML Files. Source data Import (Sponsor Extract) Copyright (c) 2004 Oracle Corporation. All rights reserved. </xsd:documentation> </xsd:annotation> <xsd:element name="ACTION_OWNER" type="xsd:string"/> <xsd:element name="ACTION_TEXT" type="xsd:string"/> <xsd:element name="APPROVED_FLAG" type="xsd:string"/> <xsd:element name="CREATED_BY" type="xsd:string"/> <xsd:element name="DEF_DETAIL_VALUE" type="xsd:string"/> <xsd:element name="DICTIONARY_SHORT_NAME" type="xsd:string"/> <xsd:element name="DICTIONARY_TERM" type="xsd:string"/> <xsd:element name="ERROR_ROW" type="xsd:string"/> <xsd:element name="DOMAIN_NAME" type="xsd:string"/> <xsd:element name="LABEL_TEXT_UPPER" type="xsd:string"/> <xsd:element name="EXT_VALUE_1" type="xsd:string"/> <xsd:element name="EXT_VALUE_2" type="xsd:string"/> <xsd:element name="EXT_VALUE_3" type="xsd:string"/> <xsd:element name="EXT_VALUE_4" type="xsd:string"/> <xsd:element name="EXT_VALUE_5" type="xsd:string"/> <xsd:element name="EXT_VALUE_6" type="xsd:string"/> <xsd:element name="EXT_VALUE_7" type="xsd:string"/> <xsd:element name="EXT_VALUE_8" type="xsd:string"/> <xsd:element name="GMT_DIFF" type="xsd:string"/> <xsd:element name="INSTANCE_NAME" type="xsd:string"/> <xsd:element name="INTEGRATION_KEY" type="xsd:string"/> <xsd:element name="OCCURRENCE_ID" type="xsd:integer"/> <xsd:element name="OMISSION_STATUS" type="xsd:string"/> <xsd:element name="SOURCE_TERM_ALT_KEY" type="xsd:string"/> <xsd:element name="SOURCE_TERM_ID" type="xsd:integer"/> <xsd:element name="STATUS" type="xsd:string"/> <xsd:element name="VERBATIM_TERM" type="xsd:string"/> <xsd:element name="VT_SUBTYPE" type="xsd:string"/> <xsd:element name="VTA_CREATED_BY" type="xsd:string"/> <xsd:element name="VTI_CREATED_BY" type="xsd:string"/> <xsd:element name="DICT_CONTENT_CODE" type="xsd:string"/> <xsd:element name="VTA_GLOBAL_FLAG" type="xsd:string"/> <xsd:element name="X_AREA" type="xsd:integer"/> <xsd:element name="X_AREA_NAME" type="xsd:string"/> <xsd:element name="WARNING_ROW" type="xsd:string"/> <xsd:attribute name="LOCAL_FLAG" type="xsd:string"/> <xsd:element name="TMSDSI"> <xsd:complexType> <xsd:sequence> <xsd:element name="META_DATA" type="MetaDataType"/> <xsd:element name="ACCOUNTS" type="AccountRowType" minOccurs="0"/> <xsd:element name="VTA_DEL" type="VtaDelType" minOccurs="0"/> <xsd:element name="VTI_DEL" type="VtiDelType" minOccurs="0"/> <xsd:element name="VTA" type="VtaType" minOccurs="0"/> <xsd:element name="VTI" type="VtiType" minOccurs="0"/> <xsd:element name="VT" type="VtType" minOccurs="0"/> <xsd:element name="SOURCE_DATA" type="SourceDataType" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="MetaDataType"> <xsd:sequence> <xsd:element name="INTEGRATION_KEY"/> <xsd:element name="INSTANCE_NAME"/> <xsd:element name="X_AREA"/> <xsd:element name="X_AREA_NAME"/> <xsd:element name="GMT_DIFF"/> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SourceDataRowType"> <xsd:sequence maxOccurs="1" minOccurs="0"> <xsd:element name="SOURCE_TERM_ID"/> <xsd:element name="OCCURRENCE_ID"/> <xsd:element name="OMISSION_STATUS" minOccurs="0"/> <xsd:element name="ACTION_TEXT" minOccurs="0"/> <xsd:element name="ACTION_OWNER" minOccurs="0"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SourceDataType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="SOURCE_DATA_ROW" type="SourceDataRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtaDelRowType"> <xsd:sequence maxOccurs="1" minOccurs="0"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="VTA_GLOBAL_FLAG"/> <xsd:element name="VTA_MODIFIED_BY"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtiDelRowType"> <xsd:sequence maxOccurs="1" minOccurs="0"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="SOURCE_TERM_ID"/> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtaDelType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VTA_DEL_ROW" type="VtaDelRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtiDelType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VTI_DEL_ROW" type="VtiDelRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtaRowType"> <xsd:sequence minOccurs="0"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="VT_SUBTYPE" minOccurs="0"/> <xsd:element name="DICTIONARY_TERM" minOccurs="0"/> <xsd:element name="APPROVED_FLAG" minOccurs="0"/> <xsd:element name="VTA_GLOBAL_FLAG" minOccurs="0"/> <xsd:element name="VTA_CREATED_BY" minOccurs="0"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtiRowType"> <xsd:sequence minOccurs="0"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="SOURCE_TERM_ID"/> <xsd:element name="OCCURRENCE_ID"/> <xsd:element name="VT_SUBTYPE" minOccurs="0"/> <xsd:element name="DICTIONARY_TERM" minOccurs="0"/> <xsd:element name="DICT_CONTENT_CODE" minOccurs="0"/> <xsd:element name="VTI_CREATED_BY" minOccurs="0"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtaType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VTA_ROW" type="VtaRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtiType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VTI_ROW" type="VtiRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtNoteRowType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="LABEL_TEXT_UPPER"/> <xsd:element name="OCCURRENCE_ID"/> <xsd:element name="DEF_DETAIL_VALUE" minOccurs="0"/> <xsd:element name="CREATED_BY"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtNoteType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VT_NOTE_ROW" type="VtNoteRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtRowType"> <xsd:sequence maxOccurs="1" minOccurs="1"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="VT_NOTE" type="VtNoteType"/> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VT_ROW" type="VtRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ErrorRowType"> <xsd:sequence minOccurs="0"> <xsd:element name="ERROR_ROW"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="WarningRowType"> <xsd:sequence minOccurs="0"> <xsd:element name="WARNING_ROW"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="AccountRowType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="OPA_ACCOUNT"> <xsd:complexType mixed="true"> <xsd:attribute name="FIRST_NAME" use="required"/> <xsd:attribute name="LAST_NAME" use="required"/> <xsd:attribute name="ENTRY_TS" use="required"/> <xsd:attribute name="END_TS" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema>
Example B-4 Source Schema Validation Text
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation> TMS schema to validate DSI XML Files. Source data Export (Sponsor Import) Copyright (c) 2004 Oracle Corporation. All rights reserved. </xsd:documentation> </xsd:annotation> <xsd:element name="ACTION_OWNER" type="xsd:string"/> <xsd:element name="ACTION_TEXT" type="xsd:string"/> <xsd:element name="APPROVED_FLAG" type="xsd:string"/> <xsd:element name="CREATED_BY" type="xsd:string"/> <xsd:element name="DEF_DETAIL_VALUE" type="xsd:string"/> <xsd:element name="DICTIONARY_SHORT_NAME" type="xsd:string"/> <xsd:element name="DICTIONARY_TERM" type="xsd:string"/> <xsd:element name="ERROR_ROW" type="xsd:string"/> <xsd:element name="DOMAIN_NAME" type="xsd:string"/> <xsd:element name="LABEL_TEXT_UPPER" type="xsd:string"/> <xsd:element name="EXT_VALUE_1" type="xsd:string"/> <xsd:element name="EXT_VALUE_2" type="xsd:string"/> <xsd:element name="EXT_VALUE_3" type="xsd:string"/> <xsd:element name="EXT_VALUE_4" type="xsd:string"/> <xsd:element name="EXT_VALUE_5" type="xsd:string"/> <xsd:element name="EXT_VALUE_6" type="xsd:string"/> <xsd:element name="EXT_VALUE_7" type="xsd:string"/> <xsd:element name="EXT_VALUE_8" type="xsd:string"/> <xsd:element name="GMT_DIFF" type="xsd:string"/> <xsd:element name="INSTANCE_NAME" type="xsd:string"/> <xsd:element name="INTEGRATION_KEY" type="xsd:string"/> <xsd:element name="OCCURRENCE_ID" type="xsd:integer"/> <xsd:element name="OMISSION_STATUS" type="xsd:string"/> <xsd:element name="SOURCE_TERM_ALT_KEY" type="xsd:string"/> <xsd:element name="SOURCE_TERM_ID" type="xsd:integer"/> <xsd:element name="STATUS" type="xsd:string"/> <xsd:element name="VERBATIM_TERM" type="xsd:string"/> <xsd:element name="VT_SUBTYPE" type="xsd:string"/> <xsd:element name="VT_TYPE" type="xsd:string"/> <xsd:element name="DICT_CONTENT_CODE" type="xsd:string"/> <xsd:element name="VTA_CREATED_BY" type="xsd:string"/> <xsd:element name="VTI_CREATED_BY" type="xsd:string"/> <xsd:element name="VTA_GLOBAL_FLAG" type="xsd:string"/> <xsd:element name="X_AREA" type="xsd:integer"/> <xsd:element name="X_AREA_NAME" type="xsd:string"/> <xsd:element name="WARNING_ROW" type="xsd:string"/> <xsd:attribute name="LOCAL_FLAG" type="xsd:string"/> <xsd:element name="TMSDSI"> <xsd:complexType> <xsd:sequence> <xsd:element name="META_DATA" type="MetaDataType"/> <xsd:element name="ACCOUNTS" type="AccountRowType" minOccurs="0"/> <xsd:element name="VT" type="VtType" minOccurs="0"/> <xsd:element name="SOURCE_DATA_DEL" type="SourceDataDelType" minOccurs="0"/> <xsd:element name="SOURCE_DATA" type="SourceDataType" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="MetaDataType"> <xsd:sequence> <xsd:element name="INTEGRATION_KEY"/> <xsd:element name="INSTANCE_NAME"/> <xsd:element name="X_AREA"/> <xsd:element name="X_AREA_NAME"/> <xsd:element name="GMT_DIFF"/> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SourceDataRowType"> <xsd:sequence maxOccurs="1" minOccurs="1"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="DICTIONARY_TERM" minOccurs="0"/> <xsd:element name="DICT_CONTENT_CODE" minOccurs="0"/> <xsd:element name="VTA_GLOBAL_FLAG" minOccurs="0"/> <xsd:element name="VTA_CREATED_BY" minOccurs="0"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="VT_SUBTYPE" minOccurs="0"/> <xsd:element name="VT_TYPE" minOccurs="0"/> <xsd:element name="SOURCE_TERM_ID"/> <xsd:element name="OCCURRENCE_ID"/> <xsd:element name="SOURCE_TERM_ALT_KEY" minOccurs="0"/> <xsd:element name="EXT_VALUE_1" minOccurs="0"/> <xsd:element name="EXT_VALUE_2" minOccurs="0"/> <xsd:element name="EXT_VALUE_3" minOccurs="0"/> <xsd:element name="EXT_VALUE_4" minOccurs="0"/> <xsd:element name="EXT_VALUE_5" minOccurs="0"/> <xsd:element name="EXT_VALUE_6" minOccurs="0"/> <xsd:element name="EXT_VALUE_7" minOccurs="0"/> <xsd:element name="EXT_VALUE_8" minOccurs="0"/> <xsd:element name="APPROVED_FLAG" minOccurs="0"/> <xsd:element name="OMISSION_STATUS" minOccurs="0"/> <xsd:element name="ACTION_TEXT" minOccurs="0"/> <xsd:element name="ACTION_OWNER" minOccurs="0"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SourceDataType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="SOURCE_DATA_ROW" type="SourceDataRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SourceDataDelRowType"> <xsd:sequence maxOccurs="1" minOccurs="1"> <xsd:element name="SOURCE_TERM_ID"/> <xsd:element name="OCCURRENCE_ID"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SourceDataDelType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="SOURCE_DATA_DEL_ROW" type="SourceDataDelRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtNoteRowType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="LABEL_TEXT_UPPER"/> <xsd:element name="OCCURRENCE_ID"/> <xsd:element name="DEF_DETAIL_VALUE" minOccurs="0"/> <xsd:element name="CREATED_BY"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="LOCAL_FLAG"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtNoteType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VT_NOTE_ROW" type="VtNoteRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtRowType"> <xsd:sequence maxOccurs="1" minOccurs="1"> <xsd:element name="DICTIONARY_SHORT_NAME"/> <xsd:element name="DOMAIN_NAME"/> <xsd:element name="VERBATIM_TERM"/> <xsd:element name="VT_NOTE" type="VtNoteType"/> <xsd:element name="ERROR" maxOccurs="unbounded" minOccurs="0" type="ErrorRowType"/> <xsd:element name="WARNING" maxOccurs="unbounded" minOccurs="0" type="WarningRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VtType"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="VT_ROW" type="VtRowType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ErrorRowType"> <xsd:sequence minOccurs="0" maxOccurs="unbounded" > <xsd:element name="ERROR_ROW"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="WarningRowType"> <xsd:sequence minOccurs="0" maxOccurs="unbounded" > <xsd:element name="WARNING_ROW"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="AccountRowType"> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="OPA_ACCOUNT"> <xsd:complexType mixed="true"> <xsd:attribute name="FIRST_NAME" use="required"/> <xsd:attribute name="LAST_NAME" use="required"/> <xsd:attribute name="ENTRY_TS" use="required"/> <xsd:attribute name="END_TS" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema>