This document contains the following sections:
· Overview
· Naming convention in schemas
· WITSML Schemas, XML documents, and Stylesheets
The Wellsite Information Transfer Standard Markup Language (WITSML) is a standard for sending well site information in an XML document format between business partners. XML schemas are used to define the content of an XML document. The WITSML standard consists of data object and component schemas. A data object schema is the smallest set of related data that can be transmitted within an XML document (e.g.; well, wellbore, rig, etc.). Data object schemas contain attributes, elements, and imported component schemas.
Component schemas are XML schemas, but these schemas do not represent complete data objects. A component schema may be imported by more than one data object schema. All component schemas are prefixed with (cs_). Four component schemas are included in all data object schemas:
Since all XML documents can only have one root level element and there are instances where it is necessary to send multiple occurrences of a data object in a single XML document (e.g.; multiple wellbores in a well), a pluralized version of the data object name was established as the schema root element. That is, the object name followed by an “S” (e.g.; wells, wellbores, etc.). In some cases, this leads to incorrect pluralization (e.g. trajectorys), but is required to order to meet the requirements of the WITSML API’s which generate tag names based on the data object name.
The unique identifiers (uid) for data objects are always defined as attributes at the singular data object name level (e.g.; uidWell, uidWellbore, etc.). That is, never at the pluralized data object name level. This was done for two reasons;
The “type” for an element can be either a W3C standard type or a WITSML defined type. The W3C standard types are prefixed with “xsd:” and the WITSML types are prefixed with “witsml:”. A WITSML type can be one of three types; a definition only with possibly a restricted size specified, a definition with enumerated values that are permitted, and a reference to another data object schema or component schema. In order, to help identify which type is being referenced, the following naming convention is used.
<xsd:element name="mdKickoff" type="witsml:standardDepthIndex" minOccurs="0"/>
<xsd:element name="shape" type="witsml:WellboreShape" minOccurs="0"/>
<xsd:element name="trajectoryStation"
type="witsml:obj_trajectoryStation"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="pumps" type="witsml:cs_pumps" minOccurs="0" maxOccurs="unbounded"/>
Some schemas are used as both a data object schema and as a component schema. That is, there is a need to transmit the data object independently of other well related data and a need at times to send information as part of another data object. For example, trajectory stations can be sent as an XML document or trajectory stations can be included in a trajectory XML document. Whenever a data object schema is referencing another data object schema, the reference is made to the singular complex type name. For example, <xsd:element name="trajectorystation" type="witsml:obj_trajectoryStation" …. maxOccurs=”unbounded”/>. The example below gives a more complete picture of how this is accomplished.
( This following is a snippet from the trajectory schema
definition)
<xsd:element
name="trajectorys" type="witsml:obj_trajectorys"/>
<xsd:complexType
name="obj_trajectorys">
<xsd:sequence>
<xsd:element
name="trajectory" type="witsml:obj_trajectory"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute
name="version" type="xsd:string" use="fixed"
value="1.0"/>
</xsd:complexType>
<!-- WITSML
Trajectory - Locally Defined Elements
and Attributes -->
<xsd:complexType
name="obj_trajectory">
<xsd:sequence>
<xsd:element
name="uidTrajParent" type="witsml:str64"
minOccurs="0"/>
<xsd:element
name="dTimTrajStart" type="xsd:dateTime"
minOccurs="0"/>
(other
trajectory elements)
<xsd:element
name="station" type="witsml:obj_trajectoryStation" …. maxOccurs=”unbounded”/>
<xsd:element
name="commonData" type="witsml:commonData"
minOccurs="0"/>
<xsd:element
name="customData" type="witsml:customData"
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute
name="uidWell" type="witsml:str64"
use="required"/>
<xsd:attribute
name="uidWellbore" type="witsml:str64"
use="required"/>
<xsd:attribute
name="uidTrajName" type="witsml:str64"
use="required"/>
</xsd:complexType>
The “obj_trajectionStation” referenced above is the name of
a complex type defined in the obj_trajectoryStation schema.
The WITSML standard includes the following data object and component schemas.
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_bhaRun.xsd |
||||
|
cs_drillingParams.xsd |
|
|
|
|
|
cs_commonData.xsd |
|
|
|
|
|
cs_customData.xsd |
|
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_capClient |
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_capPublisher |
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_capServer |
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_capSubscriber |
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_cementJob.xsd |
||||
|
cs_cementStage.xsd |
|
|
|
|
|
cs_cementingFluid.xsd |
|
|
|
|
|
cs_cementAdditive.xsd |
|
|
|
|
|
cs_cementPumpSchedule.xsd |
|
|
|
|
|
cs_commonData.xsd |
|
|
|
|
|
cs_customData.xsd |
|
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_convCore.xsd |
||||
|
cs_geologyInterval.xsd |
|
|
|
|
|
cs_lithology.xsd |
|
|
|
|
|
cs_show.xsd |
|
|
|
|
|
cs_chromatograph.xsd |
|
|
|
|
|
cs_mudGas.xsd |
|
|
|
|
|
cs_commonData.xsd |
|
|
|
|
|
cs_customData.xsd |
|
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_fluidsReport.xsd |
||||
|
cs_fluids.xsd |
|
|
|
|
|
cs_rheometer.xsd |
|
|
|
|
|
cs_commonData.xsd |
|
|
|
|
|
cs_customData.xsd |
|
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_formationMarker.xsd |
||||
|
cs_commonData.xsd |
|
|
|
|
|
cs_customData.xsd |
|
|
|
Schemas |
XSD Schema |
XML Docu. |
XML via Stylesheet |
Stylesheet Source |
|
obj_log.xsd |
||||
|
cs_logHeader.xsd |
|
|
|
|
|
cs_logCurveInfo.xsd |
|
|
|
|
|
cs_logData.xsd |
|
|
|
|
|
cs_commonData.xsd |