B Disconnected System Integration XML Files

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:

XML File Names

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.

XML File Structure

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>

Key to XML File Tags

The following tables provide an explanation of the tags used in the required XML file structure.

Table B-1 XML Section Tags

Tag Description

<TMSDSI>

File data to be processed by DSI.

<META_DATA>

Metadata information that applies to all data in the XML file.

<SOURCE_DATA>

Source data to be processed.

<SOURCE_DATA_ROW>

Individual source data rows.

<SOURCE_DATA_DEL>

Source data deletes to be processed.

<SOURCE_DATA_DEL_ROW>

Individual source data rows to be deleted.

<VTA>

Verbatim Term Assignments.

<VTA_ROW>

Verbatim Term Assignments Rows.

<VTA_NOTE>

Workflow Informative Notes for VTA.

<VTA_NOTE_ROW>

Workflow Informative Note row for VTA.

<VTA_DEL>

Declassified Verbatim Term Assignments.

<VTA_DEL_ROW>

Declassified Verbatim Term Assignments rows.

<VTI>

Verbatim Term Individuals

<VTI_ROW>

Verbatim Term Individual Rows.

<VTI_DEL>

Deleted Verbatim Term Individuals.

<VTI_DEL_ROW>

Deleted Verbatim Term Individual Rows.


Table B-2 XML Data and Metadata Tags

Tag Description Data Type (length) Mand-atory? Default Value

<INTEGRATION_KEY>

Source Data System Name

Varchar2(15)

Y

N/A

<INSTANCE_NAME>

Source Database Name

Varchar2(93)

Y

N/A

<X_AREA>

Batch Processing Unit

Number(10)

Y

0

<X_AREA_NAME>

Name; e.g. Study123

Varchar2(65)

Y

N/A

<GMT_DIFF>

DB's GMT Time Difference

Varchar2(6)

N

N/A

<DICTIONARY_SHORT_NAME>

Dictionary Short Name

Varchar2(10)

Y

N/A

<DOMAIN_NAME>

Domain Name

Varchar2(65)

Y

N/A

<VERBATIM_TERM>

Collected Verbatim Term

Varchar2(300)

Y

N/A

<VTA_GLOBAL_FLAG>

Is the VTA Global or not?

Varchar2(1)

N

N/A

<VTA_CREATED_BY>

The VTA Creator

Varchar2(30)

N

N/A

<VT_SUBTYPE>

MS (Misspelled) or AC (Accepted)

Varchar2(15)

N

N/A

VTI_CREATED_BY

The VTI Creator

Varchar2(30)

N

N/A

VT_TYPE

VTA or VTI

Varchar2(15)

N

N/A

DICT_CONTENT_CODE

DICT_CONTENT_CODE of the Dictionary term

Varchar2(30)

N

N/A

<DICTIONARY_TERM>

Dictionary Term

Varchar2(300)

N

N/A

<LABEL_TEXT_UPPER>

Informative Note Label

Varchar2(30)

N

N/A

<ALL_VERSION_FLAG>

Does the Informative Note apply to all versions?

Varchar2(1)

N

N/A

<CREATED_BY>

Informative Note Creator

Varchar2(30)

N

N/A

<DEF_DETAIL_VALUE>

Informative Note Text

CLOB

N

N/A

<STATUS>

Informative Note Status

Varchar2(15)

N

N/A

<SOURCE_TERM_ID>

Source Data ID (PK)

Number(15)

Y

N/A

<OCCURRENCE_ID>

Source Data ID (PK)

Number(10)

Y

0

<SOURCE_TERM_ALT_KEY>

Alternative Source Data Key

Varchar2(60)

N

N/A

<EXT_VALUE_1>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_2>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_3>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_4>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_5>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_6>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_7>

User Defined Data Value

Varchar2(30)

N

N/A

<EXT_VALUE_8>

User Defined Data Value

Varchar2(30)

N

N/A

<OMISSION_STATUS>

Omission Status (TMS_IN_PROGRESS, TMS_EVALUATION are reserved)

Varchar2(15)

N

N/A

<ACTION_OWNER>

Person to whom the Action is assigned

Varchar2(30)

N

N/A

<ACTION_TEXT>

Action Text

Varchar2 (2000)

N

N/A

<APPROVED_FLAG>

VTA Approved Flag

Varchar2(1)

Y

N


Validation of Non-TMS XML Files

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:

  1. 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">

  2. Put the .xsd file into the same directory as the XML file.

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

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