123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM and/or HCL
- IBM Informix Dynamic Server
- Copyright IBM Corporation 2008, 2011
- (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
- Title: idser.xsd
- XML Schema Definition for Informix Dynamic Server Enterprise Replication
- Aborted Transaction Spooling and Row Information Spooling files
-
- Note: If Enterprise Replication could not able to obtain database name,
- table name, owner name or server name information then their values
- will be set to "*UNKNOWN*".
- Version 1
- -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
- <!-- ==== ROOT TAG ==== -->
- <xs:element name="ERFILE">
- <xs:complexType>
- <xs:choice>
- <xs:element ref="ATS"/>
- <xs:element ref="RIS"/>
- </xs:choice>
- <xs:attribute name="version" type="xs:integer" default="1"/>
- </xs:complexType>
- </xs:element>
- <!-- ====================== Items Common to ATS and RIS ====================== -->
- <!-- ==== Source server information ==== -->
- <xs:element name="SOURCE">
- <xs:complexType>
- <xs:attribute name="id" type="xs:integer" use="required"/>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- ==== Format example: 2008-11-08T20:16:25 ==== -->
- <xs:attribute name="commitTime" type="xs:dateTime" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- ==== Target server information ==== -->
- <xs:element name="TARGET">
- <xs:complexType>
- <xs:attribute name="id" type="xs:integer" use="required"/>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- ==== Format example: 2008-11-08T20:16:25 ==== -->
- <xs:attribute name="receiveTime" type="xs:dateTime" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- ==== Optional shadow column values for local and replicated rows ==== -->
- <xs:element name="SHADOWCOLUMNS">
- <xs:complexType>
- <xs:attribute name="serverID" type="xs:integer" use="required"/>
- <xs:attribute name="serverName" type="xs:string" use="required"/>
- <!-- ==== GMT time ==== -->
- <xs:attribute name="cdrTimeInt" type="xs:integer" use="required"/>
- <!-- ==== Format example: 2008-11-08T20:16:25 ==== -->
- <xs:attribute name="cdrTimeString" type="xs:dateTime" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="SQLERROR">
- <xs:complexType>
- <xs:attribute name="num" type="xs:integer" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="ISAMERROR">
- <xs:complexType>
- <xs:attribute name="num" type="xs:integer" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- ==== Datasync error codes ==== -->
- <xs:element name="CDRERROR">
- <xs:complexType>
- <xs:attribute name="num" type="xs:integer" use="required"/>
- <xs:attribute name="description" type="xs:string"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="MESSAGE" type="xs:string"/>
- <!--
- COLUMN tag holds column data for replicated table.
- name attribute identifies column name.
- dataExists identifies whether data exists for this column or not.
- isLOBorUDT identifies whether column is of type UDT, smart large object or
- simple large object. if isLOBorUDT set to "true" then data for these
- columns will be skipped and dataExists value will be set to false.
- isHex set to true if column data dumped in hex format. This happens when
- Enterprise Replication doesn't have much information to interpret the
- row data.
- -->
- <xs:element name="COLUMN">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="dataExists" type="xs:boolean" default="true"/>
- <xs:attribute name="isHex" type="xs:boolean" default="false"/>
- <xs:attribute name="isLOBorUDT" type="xs:boolean" default="false"/>
- <xs:attribute name="isNull" type="xs:boolean" default="false"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <!-- ==== DATA tag holds row data ==== -->
- <xs:element name="DATA">
- <xs:complexType>
- <xs:sequence>
- <!-- ==== COLUMN tag holds column data ==== -->
- <xs:element ref="COLUMN" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="dataExists" type="xs:boolean" default="true"/>
- </xs:complexType>
- </xs:element>
- <!-- ==== REPLICATED tag holds replicated row data ==== -->
- <xs:element name="REPLICATED">
- <xs:complexType>
- <xs:sequence>
- <!-- ==== Holds shadow column values ==== -->
- <xs:element ref="SHADOWCOLUMNS" minOccurs="0"/>
- <!-- ==== Holds row data ==== -->
- <xs:element ref="DATA"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- ============== ATS file specific tags ================== -->
- <xs:element name="ATS">
- <xs:complexType>
- <xs:sequence>
- <!--
- TRANSACTION tag holds RIS file name (if it exists) and number of
- rows processed before aborting the transaction.
- -->
-
- <xs:element ref="TRANSACTION"/>
- <!-- ==== ATSROWS tag holds multiple replicated rows ==== -->
- <xs:element ref="ATSROWS"/>
- </xs:sequence>
- <xs:attribute name="version" type="xs:integer" default="1"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="TRANSACTION">
- <xs:complexType>
- <xs:sequence>
- <!-- Source server information -->
- <xs:element ref="SOURCE"/>
- <!-- Target server information -->
- <xs:element ref="TARGET"/>
- <xs:element ref="MESSAGE" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="CDRERROR" minOccurs="0"/>
- <xs:element ref="SQLERROR" minOccurs="0"/>
- <xs:element ref="ISAMERROR" minOccurs="0"/>
- <xs:element ref="SPLCODE" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="RISFile" type="xs:string"/>
- <!-- generateRISFile will be set to true when RIS file exists for this
- aborted transaction -->
- <xs:attribute name="generateRISFile" type="xs:boolean" default="false"/>
- <!-- Number of rows processed before aborting the transaction. -->
- <xs:attribute name="processedRows" type="xs:integer" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Tag for each replicated row data. -->
- <xs:element name="ATSROW">
- <xs:complexType>
- <xs:sequence>
- <!-- Indicates row data is for replicated row. -->
- <xs:element ref="REPLICATED"/>
- </xs:sequence>
- <!-- row sequence number -->
- <xs:attribute name="num" type="xs:integer" use="required"/>
- <!-- replicate id -->
- <xs:attribute name="replicateID" type="xs:integer" use="required"/>
- <!-- database name -->
- <xs:attribute name="database" type="xs:string" use="required"/>
- <!-- table owner -->
- <xs:attribute name="owner" type="xs:string" use="required"/>
- <!-- table name -->
- <xs:attribute name="table" type="xs:string" use="required"/>
- <!-- operation type -->
- <xs:attribute name="operation" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="Insert"/>
- <xs:enumeration value="SyncRow"/>
- <xs:enumeration value="ConvInsert"/>
- <xs:enumeration value="KeyInsert"/>
- <xs:enumeration value="Update"/>
- <xs:enumeration value="Delete"/>
- <xs:enumeration value="ConvDelete"/>
- <xs:enumeration value="KeyDelete"/>
- <xs:enumeration value="Unknown"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <!-- ==== holds multiple replicated rows ==== -->
- <xs:element name="ATSROWS">
- <xs:complexType>
- <xs:sequence>
- <!-- ==== holds one replicated row ==== -->
- <xs:element ref="ATSROW" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- ================= RIS file specific tags================= -->
- <xs:element name="RIS">
- <xs:complexType>
- <xs:sequence>
- <!-- Source server information -->
- <xs:element ref="SOURCE"/>
- <!-- Target server information -->
- <xs:element ref="TARGET"/>
- <!-- holds multiple replicated and locale rows -->
- <xs:element ref="RISROWS"/>
- <xs:choice>
- <!-- indicates transaction is aborted -->
- <xs:element ref="TXNABORTED"/>
- <!-- indicates transaction is committed -->
- <xs:element ref="TXNCOMMITTED"/>
- </xs:choice>
- </xs:sequence>
- <!-- RIS file format version number -->
- <xs:attribute name="version" type="xs:integer" default="1"/>
- <!-- fromSource will be set to true if the ris file is
- generated at source server in grouper sub-component of ER.
- -->
- <xs:attribute name="fromSource" type="xs:boolean" default="false"/>
- </xs:complexType>
- </xs:element>
- <!-- Holds information about local and replicated row data for one aborted row -->
- <xs:element name="RISROW">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="MESSAGE" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="CDRERROR" minOccurs="0"/>
- <xs:element ref="SQLERROR" minOccurs="0"/>
- <xs:element ref="ISAMERROR" minOccurs="0"/>
- <xs:element ref="SPLCODE" minOccurs="0"/>
- <xs:element ref="MESSAGE" minOccurs="0" maxOccurs="unbounded"/>
- <!-- Holds local row data for corresponding replicated row -->
- <xs:element ref="LOCAL" minOccurs="0"/>
- <!-- Replicated row data -->
- <xs:element ref="REPLICATED"/>
- </xs:sequence>
- <!-- Row sequence number -->
- <xs:attribute name="num" type="xs:integer" use="required"/>
- <!-- Replicated Id -->
- <xs:attribute name="replicateID" type="xs:integer" use="required"/>
- <!-- Database name -->
- <xs:attribute name="database" type="xs:string" use="required"/>
- <!-- table owner name -->
- <xs:attribute name="owner" type="xs:string" use="required"/>
- <!-- table name -->
- <xs:attribute name="table" type="xs:string" use="required"/>
- <!-- operation type -->
- <xs:attribute name="operation" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="Insert"/>
- <xs:enumeration value="SyncRow"/>
- <xs:enumeration value="ConvInsert"/>
- <xs:enumeration value="KeyInsert"/>
- <xs:enumeration value="Update"/>
- <xs:enumeration value="Delete"/>
- <xs:enumeration value="ConvDelete"/>
- <xs:enumeration value="KeyDelete"/>
- <xs:enumeration value="Unknown"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <!-- Holds multiple local and replicated aborted rows -->
- <xs:element name="RISROWS">
- <xs:complexType>
- <xs:sequence>
- <!-- Holds local and replicated aborted row data for one row -->
- <xs:element ref="RISROW" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- SPL CODE from stored procedure conflict rule set by user -->
- <xs:element name="SPLCODE">
- <xs:complexType>
- <xs:attribute name="num" type="xs:integer" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Local row data for aborted row -->
- <xs:element name="LOCAL">
- <xs:complexType>
- <xs:sequence>
- <!-- Local row shadow column values -->
- <xs:element ref="SHADOWCOLUMNS" minOccurs="0"/>
- <xs:element ref="DATA"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- Indicates that replicated txn was aborted -->
- <xs:element name="TXNABORTED">
- <xs:complexType>
- <!-- ATS file name if transaction was aborted and ATS file was
- created for this aborted row. generateATSFile will be set to
- true when ATS file was created.
- -->
- <xs:attribute name="ATSFile" type="xs:string"/>
- <xs:attribute name="generateATSFile" type="xs:boolean" default="false"/>
- <!-- Error description for aborted transaction -->
- <xs:attribute name="TxnErr" type="xs:string"/>
- </xs:complexType>
- </xs:element>
- <!-- Indicates that replicated txn was committed -->
- <xs:element name="TXNCOMMITTED">
- <xs:complexType>
- <xs:attribute name="totalRows" type="xs:integer" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>
|