blob: 3ff7f37be1f8f6da3205977f503f50e14a8a75c5 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://schemas.niku.com/2003/dataProvider" xmlns="http://schemas.niku.com/2003/dataProvider" xmlns:srv="http://schemas.niku.com/2002/service" xmlns:object="http://schemas.niku.com/2002/objectTypes" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="http://schemas.niku.com/2002/service" schemaLocation="service-2002-02.xsd"/>
<xsd:import namespace="http://schemas.niku.com/2002/objectTypes" schemaLocation="object-types-2003-09.xsd"/>
<xsd:element name="dataProvider" type="DataProviderType">
<xsd:annotation>
<xsd:documentation>The root element of a data provider. This metadata follows the structure of a multi-dimensional OLAP cube.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="DataProviderType">
<xsd:annotation>
<xsd:documentation>A complex type that describes the structural metadata of a data provider. This structure follows the model of a OLAP cube.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="retrieveService" type="srv:retrieveService" minOccurs="0"/>
<xsd:element name="dimension" type="DimensionType" maxOccurs="unbounded"/>
<xsd:element name="metric" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="parameter" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="links" type="object:LinksType" minOccurs="0"/>
<xsd:element name="object" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>An object used by the data provider. If an data provider aggregates or "wraps" an object, this element "publishes" such objects as being used by the provider.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="code" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The object code</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="id" type="xsd:integer" use="required">
<xsd:annotation>
<xsd:documentation>The object code</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The internal code</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The UI displayable name</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="obsTableNameKey" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="DimensionType">
<xsd:annotation>
<xsd:documentation>A dimension of the cube. Dimensions are a structural attribute of a cube which are organized into a hierarchical set of categories that describe metrics from a fact table.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="nls" type="object:NlsType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="property" type="PropertyType" maxOccurs="unbounded"/>
<xsd:element name="level" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation>A level within a dimension</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="name" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The name of the level</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="key" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The name of the property that is the key of the level</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The internal code</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The ui displayable name</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="location" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>When the data provider returns the data in XML form, this attribute specifies the XPath location of the root node of the dimension. For lists, this node can repeat.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="PropertyType">
<xsd:annotation>
<xsd:documentation>A complex type that describes a Property (aka Field or Attribute)</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="nls" type="object:NlsType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="readExpression" type="object:AugmentSQLType" minOccurs="0" maxOccurs="2"/>
<xsd:element name="displayMapping" type="object:DisplayMappingType" minOccurs="0"/>
<xsd:element name="uomConversion" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>A unit of measure conversion supported by the data provider.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="code" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The unit of measure conversion code</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The internal code</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The name of the property for the UI</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="key" type="xsd:boolean" default="false">
<xsd:annotation>
<xsd:documentation>The name of the property that is the key of the level</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="custom" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field is a custom field. Used during submission to save data to the satellite
tables for custom data.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="dataType" type="object:DataType">
<xsd:annotation>
<xsd:documentation>
The data type of the property
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="extDataType" type="object:ExtendedType">
<xsd:annotation>
<xsd:documentation>
The extended data type of the property
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="scale" type="xsd:int">
<xsd:annotation>
<xsd:documentation>
The scale of the property, i.e. number of decimal places
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="timeScalable" type="object:TimeScaleType">
<xsd:annotation>
<xsd:documentation>
Determines the time scalable capabilities of the property
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="length" type="xsd:integer">
<xsd:annotation>
<xsd:documentation>
The size of the data. Used by the view engines to limit input on forms.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="sortable" type="xsd:boolean" default="true">
<xsd:annotation>
<xsd:documentation>When true, this property can be sorted on.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="required" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field is required when updating the object to the persistence layer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="unique" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field must be unique when updating the object to the persistence layer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="readonly" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field cannot be updated during submission of the object to the persistence layer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="enterOnce" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field cannot be updated more than once when the object is updated to the persistence layer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="virtual" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field is calculated and doesn't reside in the database.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="active" type="xsd:boolean" default="true"/>
<xsd:attribute name="private" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field is generated by the system.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lookupType" type="xsd:string"/>
<xsd:attribute name="multiValued" type="xsd:boolean"/>
<xsd:attribute name="currencyAttribute" type="xsd:string"/>
<xsd:attribute name="currencyConnected" type="xsd:boolean"/>
<xsd:attribute name="dependentEntry" type="xsd:string"/>
<xsd:attribute name="dependentExit" type="xsd:string"/>
<xsd:attribute name="dependentParentLookup" type="xsd:string"/>
<xsd:attribute name="exact" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Used for NSQL parameters when there can only be one value. So, the attribute cannot be multivalued and cannot
have a wildcard. This does value does not need to be persisted to the database because it is only for NSQL. The
reason it is in the schema is because the NSQL gets converted to and Object for ODF.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="gridEditable" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Indicates that the field is editable within a grid.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:schema>