Access Keys:
Skip to content (Access Key - 0)

Data Services


CQL Schemas


This page contains the XML schemas representing CQL.

The CQL querying schema (http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery)

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cql="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" targetNamespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:complexType name="Object">
		<xsd:annotation>
			<xsd:documentation>Object used as search criteria or target definition</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="Attribute" type="cql:Attribute" minOccurs="0"/>
			<xsd:element name="Association" type="cql:Association" minOccurs="0"/>
			<xsd:element name="Group" type="cql:Group" minOccurs="0"/>
		</xsd:choice>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="Association">
		<xsd:annotation>
			<xsd:documentation>Association to another Object</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="cql:Object">
				<xsd:attribute name="roleName" type="xsd:string" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Attribute">
		<xsd:annotation>
			<xsd:documentation>Object Property element used as search criteria</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
		<xsd:attribute name="predicate" type="cql:Predicate" use="optional" default="EQUAL_TO"/>
		<xsd:attribute name="value" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="Group">
		<xsd:annotation>
			<xsd:documentation>Binary joint</xsd:documentation>
		</xsd:annotation>
		<xsd:choice minOccurs="2" maxOccurs="unbounded">
			<xsd:element name="Association" type="cql:Association" maxOccurs="unbounded"/>
			<xsd:element name="Attribute" type="cql:Attribute" maxOccurs="unbounded"/>
			<xsd:element name="Group" type="cql:Group" maxOccurs="unbounded"/>
		</xsd:choice>
		<xsd:attribute name="logicRelation" type="cql:LogicalOperator" use="required"/>
	</xsd:complexType>
	<xsd:simpleType name="Predicate">
		<xsd:annotation>
			<xsd:documentation>Extensible predicate type for object properties</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="EQUAL_TO" id="equal_to"/>
			<xsd:enumeration value="NOT_EQUAL_TO" id="not_equal_to"/>
			<xsd:enumeration value="LIKE" id="like"/>
			<xsd:enumeration value="IS_NULL" id="is_null"/>
			<xsd:enumeration value="IS_NOT_NULL" id="is_not_null"/>
			<xsd:enumeration value="LESS_THAN" id="less_than"/>
			<xsd:enumeration value="LESS_THAN_EQUAL_TO" id="less_than_equal_to"/>
			<xsd:enumeration value="GREATER_THAN" id="greater_than"/>
			<xsd:enumeration value="GREATER_THAN_EQUAL_TO" id="greater_than_equal_to"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="LogicalOperator">
		<xsd:annotation>
			<xsd:documentation>Logical operators</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="AND"/>
			<xsd:enumeration value="OR"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name="CQLQuery">
		<xsd:annotation>
			<xsd:documentation>Top level of CQL queries</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Target" type="cql:Object">
					<xsd:annotation>
						<xsd:documentation>Defines the target data type of a CQL query</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="QueryModifier" type="cql:QueryModifier" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Optionally modifies the returned results of the query</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="QueryModifier">
		<xsd:annotation>
			<xsd:documentation>Modifies the returned data from the query</xsd:documentation>
		</xsd:annotation>
		<xsd:choice minOccurs="0">
			<xsd:element name="AttributeNames" type="xsd:string" maxOccurs="unbounded"/>
			<xsd:element name="DistinctAttribute" type="xsd:string"/>
		</xsd:choice>
		<xsd:attribute name="countOnly" type="xsd:boolean" use="required"/>
	</xsd:complexType>
</xsd:schema>

The CQL results schema. (http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLResultSet)

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:res="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLResultSet" targetNamespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLResultSet" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:complexType name="CQLQueryResults">
		<xsd:annotation>
			<xsd:documentation>Results from a CQL query executed against a caGrid data service</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="ObjectResult" type="res:CQLObjectResult" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="IdentifierResult" type="res:CQLIdentifierResult" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="AttributeResult" type="res:CQLAttributeResult" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:element name="CountResult" type="res:CQLCountResult"/>
		</xsd:choice>
		<xsd:attribute name="targetClassname" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="CQLResult">
		<xsd:annotation>
			<xsd:documentation>Single result from a CQL query</xsd:documentation>
		</xsd:annotation>
	</xsd:complexType>
	<xsd:complexType name="CQLObjectResult">
		<xsd:annotation>
			<xsd:documentation>Result object</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="res:CQLResult">
				<xsd:sequence>
					<xsd:any processContents="lax"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CQLIdentifierResult">
		<xsd:annotation>
			<xsd:documentation>Grid Identifier to an object</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="res:CQLResult">
				<xsd:sequence>
					<xsd:element name="Identifier" type="res:TBDIdentifier"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CQLAttributeResult">
		<xsd:annotation>
			<xsd:documentation>Result Attribute</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="res:CQLResult">
				<xsd:sequence>
					<xsd:element name="Attribute" type="res:TargetAttribute" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TBDIdentifier">
		<xsd:annotation>
			<xsd:documentation>caGrid identifier, as yet TBD</xsd:documentation>
		</xsd:annotation>
	</xsd:complexType>
	<xsd:complexType name="TargetAttribute">
		<xsd:annotation>
			<xsd:documentation>an attribute (name and value) of an Object instance</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
		<xsd:attribute name="value" type="xsd:anySimpleType" use="required"/>
	</xsd:complexType>
	<xsd:element name="CQLQueryResultCollection" type="res:CQLQueryResults"/>
	<xsd:complexType name="CQLCountResult">
		<xsd:annotation>
			<xsd:documentation>Result of a count query</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="res:CQLResult">
				<xsd:attribute name="count" type="xsd:long" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>

Last edited by
Scott Oster (721 days ago) , ...
Adaptavist Theme Builder Powered by Atlassian Confluence