blob: 9f67bab7814af2d262ccfe45d29d69602fce06e6 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:include schemaLocation="common-2003-09.xsd"/>
<xsd:complexType name="ObjectAttributeType">
<xsd:sequence>
<xsd:element name="nls" type="NlsType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="default" type="DefaultType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="readExpression" type="AugmentSQLType" minOccurs="0" maxOccurs="2"/>
<xsd:element name="displayMapping" type="DisplayMappingType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string" use="required"/>
<xsd:attribute name="table" type="xsd:string"/>
<xsd:attribute name="partitionCode" type="xsd:string" use="optional" default="NIKU.ROOT"/>
<xsd:attribute name="partitionMode" type="PartitionModeType" use="optional" default="PARTITION_AND_ANSTRS_DESDNTS"/>
<xsd:attribute name="column" type="xsd:string"/>
<xsd:attribute name="dataType" type="DataType" use="required"/>
<xsd:attribute name="extendedType" type="ExtendedType"/>
<xsd:attribute name="dataSize" type="xsd:int"/>
<xsd:attribute name="scale" type="xsd:int"/>
<xsd:attribute name="minValue" type="xsd:string"/>
<xsd:attribute name="maxValue" type="xsd:string"/>
<xsd:attribute name="lookupType" type="xsd:string"/>
<xsd:attribute name="currencyAttribute" type="xsd:string"/>
<xsd:attribute name="currencyConnected" type="xsd:boolean" default="false"/>
<xsd:attribute name="constant" type="xsd:boolean" default="false"/>
<xsd:attribute name="required" type="xsd:boolean" default="false"/>
<xsd:attribute name="presenceRequired" type="xsd:boolean" default="false"/>
<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
<xsd:attribute name="editable" type="xsd:boolean" default="false"/>
<xsd:attribute name="virtual" type="xsd:boolean" default="false"/>
<xsd:attribute name="custom" type="xsd:boolean" default="false"/>
<xsd:attribute name="active" type="xsd:boolean" default="true"/>
<xsd:attribute name="private" type="xsd:boolean" default="false"/>
<xsd:attribute name="multiValued" type="xsd:boolean" default="false"/>
<xsd:attribute name="gridEditable" type="xsd:boolean" default="false"/>
<xsd:attribute name="timeScalable" type="TimeScaleType">
<xsd:annotation>
<xsd:documentation>
Defines the minimum time scale supported. Must support all higher time scales.
E.g. The month time scale must support quarter and year
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="clientFieldVersion" type="xsd:int" default="10">
<xsd:annotation>
<xsd:documentation>
---- For schedulers use only ----
Let's the schedulers code know when a field came into being to aid in backward compatibility
10 - Field was available to pre 7.0 clients
20 - Field new to 7.0
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="clientFlags" type="xsd:long" default="0">
<xsd:annotation>
<xsd:documentation>
---- For schedulers use only ----
Use by the schedulers code to fine tune the attrbutes for client applications
0x0001 - systemGenerated - Tells schedulers that the field isn't directly editable by the user but the should be sent back to the server
0x0002 - clientReadonly - User should not be able to edit the field - If true it can override the "editable" attribute
0x0004 - clientHidden - User cannot see the field - If true can override the "private" attribute
0x0008 - lookupReference - Field might be defined as a Lookup for Clarity but client should treat it as a referenced record ID
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="dependentEntry" type="xsd:string"/>
<xsd:attribute name="dependentExit" type="xsd:string"/>
<xsd:attribute name="dependentParentLookup" type="xsd:string"/>
<xsd:attribute name="id" type="xsd:int"/>
<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="aggregate" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Used for NSQL parameters only. This is when parameters are part of the @HAVING_FILTER@ NSQL
construct. When the NSQL is converted to an object and a attribute is part of the HAVING_FILTER
then this flag is true. This flag is used by the expression builder which will ignore these
types of attributes.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="derivedThrough" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>Specified if this attribute represents a derived attribute. If so this is the attribute through which it is derived. I.e. the values for this attribute must represent instances of some object. For now only the parent reference is supported. I.e. the only possible value is the same value specified for parentReferenceAttribute at the object element and consequently refers to instances of the object with code specified by parentCode.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="derivedReference" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>If derivedThrough is specified, this is the attribute that is referenced. It is an error if value specified does not match an attribute of the referenced object type.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="allowDefaultValueOverrides" type="xsd:boolean" default="true">
<xsd:annotation>
<xsd:documentation>If true, the Object admin UI will allow default values to be changed for this attribute even though it may be a stock attribute with a default value specified by a developer. If false, default values cannot be changed by a customer.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="DefaultType">
<xsd:sequence>
<xsd:element name="document" type="DocumentType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="replace" type="MacroType" use="optional"/>
<xsd:attribute name="value" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="AugmentSQLType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="dbVendor" type="DatabaseVendorType" default="all"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="DisplayMappingType">
<xsd:sequence>
<xsd:element name="mapping" type="MappingType" maxOccurs="10"/>
</xsd:sequence>
<xsd:attribute name="defaultTypeCode" type="xsd:string"/>
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="color"/>
<xsd:enumeration value="image"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="objectCode" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">Allows system data providers to specify which object the display mapping belongs to and thus reuse that objects lookups.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="attributeCode" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="en">Used by XOG to import modified display mappings on stock attributes.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="MappingType">
<xsd:sequence>
<xsd:element name="nls" type="NlsType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:long"/>
<xsd:attribute name="mappingCode" type="xsd:string" use="required"/>
<xsd:attribute name="typeCode" type="xsd:string" use="required"/>
<xsd:attribute name="lo" type="xsd:double">
<xsd:annotation>
<xsd:documentation xml:lang="en">The low value of the mapping range. Always inclusive.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="hi" type="xsd:double">
<xsd:annotation>
<xsd:documentation xml:lang="en">The high value of a mapping range. Always exclusive except when the high and low values are equivalent, e.g. 4 to 4, and when the high value is the max of all high values in the display mapping </xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="LinksType">
<xsd:sequence>
<xsd:element name="link" type="LinkType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LinkType">
<xsd:sequence>
<xsd:element name="nls" type="NlsType" maxOccurs="unbounded"/>
<xsd:element name="linkParam" type="LinkParamType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:int" use="optional"/>
<xsd:attribute name="code" type="xsd:string" use="required"/>
<xsd:attribute name="action" type="xsd:string" use="required"/>
<xsd:attribute name="objectPropertiesLink" type="xsd:boolean" default="false"/>
<xsd:attribute name="system" type="xsd:boolean" default="true"/>
<xsd:attribute name="partitionCode" type="xsd:string" use="optional" default="NIKU.ROOT"/>
<xsd:attribute name="partitionMode" type="PartitionModeType" use="optional" default="PARTITION_AND_ANSTRS_DESDNTS"/>
</xsd:complexType>
<xsd:simpleType name="DatabaseVendorType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="mssql"/>
<xsd:enumeration value="oracle"/>
<xsd:enumeration value="all"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DirectionType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="IN"/>
<xsd:enumeration value="OUT"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DataType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="string"/>
<xsd:enumeration value="number"/>
<xsd:enumeration value="date"/>
<xsd:enumeration value="binary"/>
<xsd:enumeration value="attachment"/>
<xsd:enumeration value="clob"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ExtendedType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="lookup"/>
<xsd:enumeration value="boolean"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="percent"/>
<xsd:enumeration value="money"/>
<xsd:enumeration value="timestamp"/>
<xsd:enumeration value="midnight_date"/>
<xsd:enumeration value="url"/>
<xsd:enumeration value="formula"/>
<xsd:enumeration value="skill_browse"/>
<xsd:enumeration value="avail_browse"/>
<xsd:enumeration value="attachment"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ProcessType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="processObjectId"/>
<xsd:enumeration value="processTemplateId"/>
<xsd:enumeration value="processInitiatedBy"/>
<xsd:enumeration value="processFromPeriodIndx"/>
<xsd:enumeration value="processToPeriodIndx"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TimeScaleType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="year"/>
<xsd:enumeration value="quarter"/>
<xsd:enumeration value="month"/>
<xsd:enumeration value="week"/>
<xsd:enumeration value="day"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="PartitionModeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="PARTITION_ONLY"/>
<xsd:enumeration value="PARTITION_AND_ANCESTORS"/>
<xsd:enumeration value="PARTITION_AND_DESCENDANTS"/>
<xsd:enumeration value="PARTITION_AND_ANSTRS_DESDNTS"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>