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

Data Services


Data Services 1.2 Technical Guide


Navigation
caGrid caGrid 1.2 Documentation
Data Services Data Services 1.2 Documentation Data Services 1.2 Technical Guide
Contents


Architecture


Based on Standard Grid Services

The caGrid Data Services architecture is designed as a specialization of standard grid services. As such, some basic requirements for Data Services are immediately met:

  • Security integration:
    • All security concepts that apply to any other grid service are immediately available and enforced on caGrid data services.
  • Simplified creation tooling:
    • The Introduce Toolkit allows creation of grid services, including configuring their metadata, security, and service functionality using a simple graphical interface.
    • Introduce also provides a pluggable back end architecture and graphical user interface, which allows specialized services to be created with a minimum of interaction from end users. Data Services leverage this extensibility to create services with a standard query interface, metadata, and core implementation.

Specialization of Features

Further requirements are met through implementation of a standardized query schema and client tooling to manipulate it:

  • The standard query language is CQL, defined by a schema registered in the GME.
    • Allows creation of CQL Query Java objects which can be passed to the caGrid data service's query method.
    • CQL Java Object model can be populated so as to describe the target data type and all qualifications and restrictions that must be met for the requested object.
    • Queries may be imported from an XML representation either on disk, or any other source of String input.
  • Query results described by a CQL Results schema, also registered in the GME.
  • Client tooling implemented as an iterator over the result set. The iterator may deserialize the XML returned in the CQL Result object as a series of registered objects. An alternative implementation simply returns the XML without any processing applied to it.
  • Data services expose a metadata document known as a domain model. This model defines the data types which are exposed by the data service and their relationships to one another. This model also contains semantic information, which allows data services to be discovered in the grid based on concept codes.

Service Interface

All caGrid data services implement a standard interface in the form of a WSDL document, which contains a single 'query' method. This method takes a single CQL Query parameter, and returns a single CQL Result Set object. All data services must follow this implementation pattern, but are free to include additional methods, such as domain-specific querying and data upload capabilities.

To both simplify creation of data services and ensure interoperability between data services, the basic implementation of this query operation is provided by the caGrid data services infrastructure, and is imported into user-generated services as they are created.

The query result schema wraps the serialized XML of registered data objects. These objects are identified by their schemas, which are included in the WSDL of the caGrid Data Service. This enables clients to discover which data types are available from a given service.

Query Processors

As caGrid data services are intended to be an abstraction away from an arbitrary underlying data resource, the data services infrastructure provides a means for customizing the implementation by which queries are executed against the data resource. The data services infrastructure provides an abstract base class for querying a data source with CQL, which data providers are required to implement, known as the CQL query processor. Query processor implementations are expected to take a single CQL query and produce an appropriate result set. Query processors are pluggable at runtime to the data service infrastructure, and are loaded via reflection. Implementations of query processors may specify configuration properties they require for proper functionality. These properties are configurable by the service developer through a graphical interface in the Introduce toolkit, as well as at deploy time of the service. At runtime, these properties and their corresponding values are passed to the query processor implementation.

To aid in moving existing silver level data sources on to the grid, several implementations of the CQL query processorare provided with the caGrid data service infrastructure to perform queries against a caCORE SDK generated data source. Serialization of SDK generated objects is also automatically configured when the service is created through the Introduce Toolkit.

Data Service Styles

Main Article: Data Service Styles

The data service creation and modification system is pluggable, allowing for specialized data services to be easily created and configured with the Introduce toolkit. The style concept insulates the data service core infrastructure from the complexities associated with supporting various data sources, such as the caCORE SDK. The various versions of caGrid provide out-of-the-box support for different versions of the caCORE SDK APIs, as outlined on the data services caCORE Support page.

Querying


Main Article: Client API

Data Services are accessed via their query() method, which takes a single CQL Query parameter. This method can also throw both a MalformedQueryException and a QueryProcessingException to indicate error conditions.

Alternate delivery mechanisms such as WS-Enumeration and BDT are also supported and have their own specialized query methods.

Creation


Main Article: Introduce Extension for Data Services

caGrid Data Services can be built with a set of extensions to the Introduce Toolkit. This provides grid service developers with a simple and well defined starting point to create caBIG gold compliant Data Services.

Changes


From 1.1 to 1.2

Main Article: Changes from caGrid 1.1 to 1.2

CaGrid 1.2 maintains the principle of backwards compatibility with caGrid 1.1. This holds true for caGrid data services as well. Data services developed with caGrid 1.0 and 1.1 can be queried with the 1.2 data service client side tooling. New services should be developed using caGrid 1.2 to take advantage of new features and tooling, as well as any bug fixes.

Models


The data service infrastructure provides several XML models which define its operations, query language and results, and internal functionality (styles and extension information).

WSDL Service Interfaces

http://gov.nih.nci.cagrid.data/DataService

This is the base data service WSDL, comprised of the standard query method.

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://gov.nih.nci.cagrid.data/DataService" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor" xmlns:gtwsdl1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.wsdl" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsntw="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" xmlns:wsrbfw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wns0="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity" xmlns:ns1="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" xmlns:ns2="http://gov.nih.nci.cagrid.data/DataServiceExceptions" xmlns:ns0="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLResultSet" xmlns:ns4="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" xmlns:ns3="http://gov.nih.nci.cagrid.data/DataService/types" name="DataService" targetNamespace="http://gov.nih.nci.cagrid.data/DataService">
  <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="../wsrf/properties/WS-ResourceProperties.wsdl" />
  <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl" location="../wsrf/faults/WS-BaseFaults.wsdl" />
  <import namespace="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity" location="./ServiceSecurity.wsdl" />
  <!--============================================================

                      T Y P E S
                      
  ============================================================-->
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsrbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" targetNamespace="http://gov.nih.nci.cagrid.data/DataService" elementFormDefault="qualified" attributeFormDefault="unqualified">
      <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" schemaLocation="../wsrf/faults/WS-BaseFaults.xsd" />
      <import namespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" schemaLocation="./1_gov.nih.nci.cagrid.CQLQuery.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.data/DataServiceExceptions" schemaLocation="./DataServiceExceptions.xsd" />
      <import namespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLResultSet" schemaLocation="./1_gov.nih.nci.cagrid.CQLResultSet.xsd" />
      <import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" schemaLocation="./xsd/cagrid/types/security/security.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.data/DataService/types" schemaLocation="./DataServiceTypes.xsd" />
      <import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.dataservice" schemaLocation="./xsd/cagrid/types/data/data.xsd" />
      <element name="QueryRequest">
        <complexType>
          <sequence>
            <element name="cqlQuery">
              <complexType>
                <sequence>
                  <element ref="ns1:CQLQuery" minOccurs="1" maxOccurs="1" />
                </sequence>
              </complexType>
            </element>
          </sequence>
        </complexType>
      </element>
      <element name="QueryResponse">
        <complexType>
          <sequence>
            <element ref="ns0:CQLQueryResultCollection" minOccurs="1" maxOccurs="1" />
          </sequence>
        </complexType>
      </element>
      <element name="DataServiceResourceProperties">
        <complexType>
          <sequence />
        </complexType>
      </element>
    </schema>
  </types>
  <!--  place service messages here -->
  <message name="QueryRequest">
    <part name="parameters" element="tns:QueryRequest" />
  </message>
  <message name="QueryResponse">
    <part name="parameters" element="tns:QueryResponse" />
  </message>
  <message name="QueryProcessingExceptionFaultMessage">
    <part name="fault" element="ns2:QueryProcessingException" />
  </message>
  <message name="MalformedQueryExceptionFaultMessage">
    <part name="fault" element="ns2:MalformedQueryException" />
  </message>
  <!--============================================================

                       P O R T T Y P E
                      
  ============================================================-->
  <portType name="DataServicePortType" wsrp:ResourceProperties="tns:DataServiceResourceProperties">
    <operation name="query">
      <input message="tns:QueryRequest" wsa:Action="http://data.cagrid.nci.nih.gov/DataService/QueryRequest" />
      <output message="tns:QueryResponse" wsa:Action="http://data.cagrid.nci.nih.gov/DataService/QueryResponse" />
      <fault name="QueryProcessingException" message="tns:QueryProcessingExceptionFaultMessage" wsa:Action="http://gov.nih.nci.cagrid.data/DataService/QueryProcessingExceptionFaultMessage" />
      <fault name="MalformedQueryException" message="tns:MalformedQueryExceptionFaultMessage" wsa:Action="http://gov.nih.nci.cagrid.data/DataService/MalformedQueryExceptionFaultMessage" />
    </operation>
    <operation name="GetResourceProperty">
      <input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty" />
      <output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
    </operation>
    <operation name="GetMultipleResourceProperties">
      <input name="GetMultipleResourcePropertiesRequest" message="wsrpw:GetMultipleResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties" />
      <output name="GetMultipleResourcePropertiesResponse" message="wsrpw:GetMultipleResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
    </operation>
    <operation name="QueryResourceProperties">
      <input name="QueryResourcePropertiesRequest" message="wsrpw:QueryResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourceProperties" />
      <output name="QueryResourcePropertiesResponse" message="wsrpw:QueryResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourcePropertiesResponse" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="UnknownQueryExpressionDialectFault" message="wsrpw:UnknownQueryExpressionDialectFault" />
      <fault name="InvalidQueryExpressionFault" message="wsrpw:InvalidQueryExpressionFault" />
      <fault name="QueryEvaluationErrorFault" message="wsrpw:QueryEvaluationErrorFault" />
    </operation>
    <operation name="getServiceSecurityMetadata">
      <input message="wns0:GetServiceSecurityMetadataRequest" wsa:Action="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity/GetServiceSecurityMetadataRequest" />
      <output message="wns0:GetServiceSecurityMetadataResponse" wsa:Action="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity/GetServiceSecurityMetadataResponse" />
    </operation>
  </portType>
</definitions>

http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService

The data service interface supporting WS-Enumeration

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor" xmlns:gtwsdl1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.wsdl" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsntw="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" xmlns:wsrbfw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wns1="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:wns0="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity" xmlns:ns1="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" xmlns:ns5="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:ns2="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService/types" xmlns:ns0="http://gov.nih.nci.cagrid.data/DataServiceExceptions" xmlns:ns4="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:ns3="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" xmlns:ns6="http://gov.nih.nci.cagrid.enumeration/EnumerationResponseContainer" name="EnumerationDataService" targetNamespace="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService">
  <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="../wsrf/properties/WS-ResourceProperties.wsdl" />
  <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl" location="../wsrf/faults/WS-BaseFaults.wsdl" />
  <import namespace="http://schemas.xmlsoap.org/ws/2004/09/enumeration" location="./enumeration.wsdl" />
  <import namespace="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity" location="./ServiceSecurity.wsdl" />
  <!--============================================================

                      T Y P E S
                      
  ============================================================-->
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsrbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" targetNamespace="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService" elementFormDefault="qualified" attributeFormDefault="unqualified">
      <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" schemaLocation="../wsrf/faults/WS-BaseFaults.xsd" />
      <import namespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" schemaLocation="./1_gov.nih.nci.cagrid.CQLQuery.xsd" />
      <import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" schemaLocation="./addressing.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.enumeration/EnumerationResponseContainer" schemaLocation="./EnumerationResponseContainer.xsd"/>
      <import namespace="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService/types" schemaLocation="./EnumerationDataServiceTypes.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.data/DataServiceExceptions" schemaLocation="./DataServiceExceptions.xsd" />
      <import namespace="http://schemas.xmlsoap.org/ws/2004/09/enumeration" schemaLocation="./enumeration.xsd" />
      <import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" schemaLocation="./xsd/cagrid/types/security/security.xsd" />
      <element name="EnumerationQueryRequest">
        <complexType>
          <sequence>
            <element name="cqlQuery">
              <complexType>
                <sequence>
                  <element ref="ns1:CQLQuery" minOccurs="1" maxOccurs="1" />
                </sequence>
              </complexType>
            </element>
          </sequence>
        </complexType>
      </element>
      <element name="EnumerationQueryResponse">
        <complexType>
          <sequence>
            <element ref="ns6:EnumerationResponseContainer" minOccurs="1" maxOccurs="1" />
          </sequence>
        </complexType>
      </element>
      <element name="EnumerationDataServiceResourceProperties">
        <complexType>
          <sequence />
        </complexType>
      </element>
    </schema>
  </types>
  <!--  place service messages here -->
  <message name="EnumerationQueryRequest">
    <part name="parameters" element="tns:EnumerationQueryRequest" />
  </message>
  <message name="EnumerationQueryResponse">
    <part name="parameters" element="tns:EnumerationQueryResponse" />
  </message>
  <message name="MalformedQueryExceptionFaultMessage">
    <part name="fault" element="ns0:MalformedQueryException" />
  </message>
  <message name="QueryProcessingExceptionFaultMessage">
    <part name="fault" element="ns0:QueryProcessingException" />
  </message>
  <!--============================================================

                       P O R T T Y P E
                      
  ============================================================-->
  <portType name="EnumerationDataServicePortType" wsrp:ResourceProperties="tns:EnumerationDataServiceResourceProperties">
    <operation name="enumerationQuery">
      <input message="tns:EnumerationQueryRequest" wsa:Action="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService/EnumerationQueryRequest" />
      <output message="tns:EnumerationQueryResponse" wsa:Action="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService/EnumerationQueryResponse" />
      <fault name="MalformedQueryException" message="tns:MalformedQueryExceptionFaultMessage" wsa:Action="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService/MalformedQueryExceptionFaultMessage" />
      <fault name="QueryProcessingException" message="tns:QueryProcessingExceptionFaultMessage" wsa:Action="http://gov.nih.nci.cagrid.data.enumeration/EnumerationDataService/QueryProcessingExceptionFaultMessage" />
    </operation>
    <operation name="GetResourceProperty">
      <input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty" />
      <output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
    </operation>
    <operation name="GetMultipleResourceProperties">
      <input name="GetMultipleResourcePropertiesRequest" message="wsrpw:GetMultipleResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties" />
      <output name="GetMultipleResourcePropertiesResponse" message="wsrpw:GetMultipleResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
    </operation>
    <operation name="QueryResourceProperties">
      <input name="QueryResourcePropertiesRequest" message="wsrpw:QueryResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourceProperties" />
      <output name="QueryResourcePropertiesResponse" message="wsrpw:QueryResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourcePropertiesResponse" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="UnknownQueryExpressionDialectFault" message="wsrpw:UnknownQueryExpressionDialectFault" />
      <fault name="InvalidQueryExpressionFault" message="wsrpw:InvalidQueryExpressionFault" />
      <fault name="QueryEvaluationErrorFault" message="wsrpw:QueryEvaluationErrorFault" />
    </operation>
    <operation name="getServiceSecurityMetadata">
      <input message="wns0:GetServiceSecurityMetadataRequest" wsa:Action="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity/GetServiceSecurityMetadataRequest" />
      <output message="wns0:GetServiceSecurityMetadataResponse" wsa:Action="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity/GetServiceSecurityMetadataResponse" />
    </operation>
  </portType>
</definitions>

http://gov.nih.nci.cagrid.data.bdt/BDTDataService

The data service interface using the BDT retrieval framework.

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://gov.nih.nci.cagrid.data.bdt/BDTDataService" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor" xmlns:gtwsdl1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.wsdl" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsntw="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" xmlns:wsrbfw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wns0="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity" xmlns:ns0="http://gov.nih.nci.cagrid.data.bdt/BDTDataService/types" xmlns:ns3="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" xmlns:ns12="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:ns2="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata" xmlns:ns7="http://gov.nih.nci.cagrid.data/DataServiceExceptions" xmlns:ns6="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.dataservice" xmlns:ns1="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" xmlns:ns11="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:ns13="http://gov.nih.nci.cagrid.data.bdt/BDTDataServiceBDT/types" xmlns:ns8="http://cagrid.nci.nih.gov/1/BulkDataTransferMetadata" xmlns:ns9="http://cagrid.nci.nih.gov/BulkDataHandlerReference" xmlns:ns10="http://www.globus.org/transfer" name="BDTDataService" targetNamespace="http://gov.nih.nci.cagrid.data.bdt/BDTDataService">
  <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="../wsrf/properties/WS-ResourceProperties.wsdl" />
  <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl" location="../wsrf/faults/WS-BaseFaults.wsdl" />
  <import namespace="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity" location="./ServiceSecurity.wsdl" />
  <!--============================================================

                      T Y P E S
                      
  ============================================================-->
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsrbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" targetNamespace="http://gov.nih.nci.cagrid.data.bdt/BDTDataService" elementFormDefault="qualified" attributeFormDefault="unqualified">
      <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" schemaLocation="../wsrf/faults/WS-BaseFaults.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.data.bdt/BDTDataService/types" schemaLocation="./BDTDataServiceTypes.xsd" />
      <import namespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery" schemaLocation="./1_gov.nih.nci.cagrid.CQLQuery.xsd" />
      <import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" schemaLocation="./addressing.xsd" />
      <import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata" schemaLocation="./xsd/cagrid/types/caGridMetadata.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.data/DataServiceExceptions" schemaLocation="./DataServiceExceptions.xsd" />
      <import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.dataservice" schemaLocation="./xsd/cagrid/types/data/data.xsd" />
      <import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" schemaLocation="./xsd/cagrid/types/security/security.xsd" />
      <import namespace="http://schemas.xmlsoap.org/ws/2004/09/enumeration" schemaLocation="./enumeration.xsd" />
      <import namespace="http://gov.nih.nci.cagrid.data.bdt/BDTDataServiceBDT/types" schemaLocation="./BDTDataServiceBulkDataHandlerTypes.xsd" />
      <import namespace="http://cagrid.nci.nih.gov/1/BulkDataTransferMetadata" schemaLocation="./BulkDataTransferServiceMetadata.xsd" />
      <import namespace="http://cagrid.nci.nih.gov/BulkDataHandlerReference" schemaLocation="./BulkDataHandlerReference.xsd" />
      <element name="BdtQueryRequest">
        <complexType>
          <sequence>
            <element name="cqlQuery">
              <complexType>
                <sequence>
                  <element ref="ns3:CQLQuery" minOccurs="1" maxOccurs="1" />
                </sequence>
              </complexType>
            </element>
          </sequence>
        </complexType>
      </element>
      <element name="BdtQueryResponse">
        <complexType>
          <sequence>
            <element ref="ns9:BulkDataHandlerReference" minOccurs="1" maxOccurs="1" />
          </sequence>
        </complexType>
      </element>
      <element name="BDTDataServiceResourceProperties">
        <complexType>
          <sequence>
            <element ref="ns2:ServiceMetadata" />
            <element ref="ns8:BulkDataTransferMetadata" />
            <element ref="ns6:DomainModel" />
          </sequence>
        </complexType>
      </element>
    </schema>
  </types>
  <!--  place service messages here -->
  <message name="BdtQueryRequest">
    <part name="parameters" element="tns:BdtQueryRequest" />
  </message>
  <message name="BdtQueryResponse">
    <part name="parameters" element="tns:BdtQueryResponse" />
  </message>
  <message name="MalformedQueryExceptionFaultMessage">
    <part name="fault" element="ns7:MalformedQueryException" />
  </message>
  <message name="QueryProcessingExceptionFaultMessage">
    <part name="fault" element="ns7:QueryProcessingException" />
  </message>
  <!--============================================================

                       P O R T T Y P E
                      
  ============================================================-->
  <portType name="BDTDataServicePortType" wsrp:ResourceProperties="tns:BDTDataServiceResourceProperties">
    <operation name="bdtQuery">
      <input message="tns:BdtQueryRequest" wsa:Action="http://gov.nih.nci.cagrid.data.bdt/BDTDataService/BdtQueryRequest" />
      <output message="tns:BdtQueryResponse" wsa:Action="http://gov.nih.nci.cagrid.data.bdt/BDTDataService/BdtQueryResponse" />
      <fault name="MalformedQueryException" message="tns:MalformedQueryExceptionFaultMessage" wsa:Action="http://gov.nih.nci.cagrid.data.bdt/BDTDataService/MalformedQueryExceptionFaultMessage" />
      <fault name="QueryProcessingException" message="tns:QueryProcessingExceptionFaultMessage" wsa:Action="http://gov.nih.nci.cagrid.data.bdt/BDTDataService/QueryProcessingExceptionFaultMessage" />
    </operation>
    <operation name="GetResourceProperty">
      <input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty" />
      <output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
    </operation>
    <operation name="GetMultipleResourceProperties">
      <input name="GetMultipleResourcePropertiesRequest" message="wsrpw:GetMultipleResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties" />
      <output name="GetMultipleResourcePropertiesResponse" message="wsrpw:GetMultipleResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
    </operation>
    <operation name="QueryResourceProperties">
      <input name="QueryResourcePropertiesRequest" message="wsrpw:QueryResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourceProperties" />
      <output name="QueryResourcePropertiesResponse" message="wsrpw:QueryResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourcePropertiesResponse" />
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault" />
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault" />
      <fault name="UnknownQueryExpressionDialectFault" message="wsrpw:UnknownQueryExpressionDialectFault" />
      <fault name="InvalidQueryExpressionFault" message="wsrpw:InvalidQueryExpressionFault" />
      <fault name="QueryEvaluationErrorFault" message="wsrpw:QueryEvaluationErrorFault" />
    </operation>
    <operation name="getServiceSecurityMetadata">
      <input message="wns0:GetServiceSecurityMetadataRequest" wsa:Action="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity/GetServiceSecurityMetadataRequest" />
      <output message="wns0:GetServiceSecurityMetadataResponse" wsa:Action="http://security.introduce.cagrid.nci.nih.gov/ServiceSecurity/GetServiceSecurityMetadataResponse" />
    </operation>
  </portType>
</definitions>

Schemas

http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLQuery

The CQL query schema.

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by David W. Ervin (The Ohio State University / Department of Biomedical Informatics) -->
<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>

http://CQL.caBIG/1/gov.nih.nci.cagrid.CQLResultSet

The CQL query results schema

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by David W. Ervin (The Ohio State University / Department of Biomedical Informatics) -->
<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>

gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.dataservice

The domain model schema.

<?xml version="1.0"?>
<xs:schema targetNamespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.dataservice" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:data="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.dataservice" xmlns:com="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.common" elementFormDefault="qualified">
	<xs:import namespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.common" schemaLocation="../common/common.xsd"/>
	<xs:element name="UMLClass" type="data:UMLClass"/>
	<xs:complexType name="UMLClass">
		<xs:complexContent>
			<xs:extension base="com:UMLClass">
				<xs:sequence/>
				<xs:attribute name="allowableAsTarget" use="required" type="xs:boolean"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="UMLGeneralization" type="data:UMLGeneralization"/>
	<xs:complexType name="UMLGeneralization">
		<xs:sequence>
			<xs:element name="subClassReference" type="data:UMLClassReference"/>
			<xs:element name="superClassReference" type="data:UMLClassReference"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DomainModel" type="data:DomainModel"/>
	<xs:complexType name="DomainModel">
		<xs:sequence>
			<xs:element name="exposedUMLAssociationCollection">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="data:UMLAssociation" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="exposedUMLClassCollection">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="data:UMLClass" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="umlGeneralizationCollection">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="data:UMLGeneralization" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="projectDescription" use="required" type="xs:string"/>
		<xs:attribute name="projectLongName" use="required" type="xs:string"/>
		<xs:attribute name="projectShortName" use="required" type="xs:string"/>
		<xs:attribute name="projectVersion" use="required" type="xs:string"/>
	</xs:complexType>
	<xs:element name="UMLAssociationEdge" type="data:UMLAssociationEdge"/>
	<xs:complexType name="UMLAssociationEdge">
		<xs:sequence>
			<xs:element ref="data:UMLClassReference"/>
		</xs:sequence>
		<xs:attribute name="maxCardinality" use="required" type="xs:int"/>
		<xs:attribute name="minCardinality" use="required" type="xs:int"/>
		<xs:attribute name="roleName" use="required" type="xs:string"/>
	</xs:complexType>
	<xs:element name="UMLAssociation" type="data:UMLAssociation"/>
	<xs:complexType name="UMLAssociation">
		<xs:sequence>
			<xs:element name="targetUMLAssociationEdge">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="data:UMLAssociationEdge"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="sourceUMLAssociationEdge">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="data:UMLAssociationEdge"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="bidirectional" use="required" type="xs:boolean"/>
	</xs:complexType>
	<xs:element name="UMLClassReference" type="data:UMLClassReference"/>
	<xs:complexType name="UMLClassReference">
		<xs:annotation>
			<xs:documentation>Represents a "pointer/reference" to a UMLClass exposed by this DomainModel.  The refid attribute must share the value of an UMLClass.id on the exposedClassCollection of this model.  This exists solely as an optimization for not duplicating the UMLClass (in XML) everywhere it is associated (which is a significant savings).</xs:documentation>
		</xs:annotation>
		<xs:sequence/>
		<xs:attribute name="refid" use="required" type="xs:string">
			<xs:annotation>
				<xs:documentation>Must be the value of the UMLClass.id for the "referenced" UMLClass</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
</xs:schema>

Internal Use Schemas

The schemas in this section are used internally to the data service infrastructure and are not generally utilized across the grid.

http://CQL.caBIG/1/gov.nih.nci.cagrid.data.extension

This schema is used by the data service extension to maintain information specific to the data service infrastructure during service creation and modification with the Introduce toolkit.

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by David W. Ervin (The Ohio State University / Department of Biomedical Informatics) -->
<xsd:schema xmlns:ext="http://CQL.caBIG/1/gov.nih.nci.cagrid.data.extension" xmlns:aud="http://gov.nih.nci.cagrid.data/Auditing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://CQL.caBIG/1/gov.nih.nci.cagrid.data.extension" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--
	<xsd:import namespace="http://gov.nih.nci.cagrid.data/Auditing" schemaLocation="DataServiceAuditorConfiguration.xsd"/>
	-->
	<xsd:element name="DataServiceExtensionData">
		<xsd:annotation>
			<xsd:documentation>Data the data service introduce extension needs to know about</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="Data">
		<xsd:sequence>
			<xsd:element name="AdditionalLibraries" type="ext:AdditionalLibraries" nillable="false" minOccurs="0"/>
			<xsd:element name="CadsrInformation" type="ext:CadsrInformation" nillable="false" minOccurs="0"/>
			<xsd:element name="ServiceFeatures" type="ext:ServiceFeatures" nillable="false" minOccurs="0"/>
			<xsd:element ref="aud:DataServiceAuditors" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="AdditionalLibraries">
		<xsd:annotation>
			<xsd:documentation>Lists out the names of jar files needed for the data service that aren't part of the regular service deployment</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="JarName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CadsrInformation">
		<xsd:annotation>
			<xsd:documentation>Information regarding the caDSR configured by the user</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Packages" type="ext:CadsrPackage" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="projectLongName" type="xsd:string" use="required"/>
		<xsd:attribute name="projectVersion" type="xsd:string" use="required"/>
		<xsd:attribute name="serviceUrl" type="xsd:string" use="required"/>
		<xsd:attribute name="noDomainModel" type="xsd:boolean" use="required"/>
		<xsd:attribute name="useSuppliedModel" type="xsd:boolean" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="CadsrPackage">
		<xsd:annotation>
			<xsd:documentation>Package selected from the caDSR</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="CadsrClass" type="ext:ClassMapping" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
		<xsd:attribute name="mappedNamespace" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="ServiceFeatures">
		<xsd:annotation>
			<xsd:documentation>Features of data services which can be enabled / disabled</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="useWsEnumeration" type="xsd:boolean" use="required"/>
		<xsd:attribute name="useGridIdeitifiers" type="xsd:boolean" use="required"/>
		<xsd:attribute name="useBdt" type="xsd:boolean" use="required"/>
		<xsd:attribute name="serviceStyle" type="xsd:string" use="optional"/>
	</xsd:complexType>
	<xsd:complexType name="ClassMapping">
		<xsd:annotation>
			<xsd:documentation>Mapping between exposed caDSR class and schema element name</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="className" type="xsd:string" use="required"/>
		<xsd:attribute name="elementName" type="xsd:string" use="required"/>
		<xsd:attribute name="selected" type="xsd:boolean" use="required"/>
		<xsd:attribute name="targetable" type="xsd:boolean" use="required"/>
	</xsd:complexType>
</xsd:schema>

http://gov.nih.nci.cagrid.data/Style

This schema defines the components of each service style's interface to the data service extension

<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by David W. Ervin (The Ohio State University / Department of Biomedical Informatics) -->
<xsd:schema xmlns:tns="http://gov.nih.nci.cagrid.data/Style" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://gov.nih.nci.cagrid.data/Style" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:element name="DataServiceStyle" type="tns:DataServiceStyle"/>
	<xsd:complexType name="DataServiceStyle">
		<xsd:sequence>
			<xsd:element ref="tns:CompatibleCaGridVersions"/>
			<xsd:element name="StyleDescription" type="xsd:string" minOccurs="0"/>
			<xsd:element name="CreationWizardPanels" minOccurs="0">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="tns:CreationWizardPanel" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="tns:ModificationUiPanel" minOccurs="0"/>
			<xsd:element ref="tns:CodegenHelpers" minOccurs="0"/>
			<xsd:element ref="tns:CreationHelper" minOccurs="0"/>
			<xsd:element ref="tns:VersionUpgrade" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
		<xsd:attribute name="version" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:element name="CompatibleCaGridVersions" type="tns:CompatibleCaGridVersions"/>
	<xsd:complexType name="CompatibleCaGridVersions">
		<xsd:sequence>
			<xsd:element name="Version" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:simpleContent>
						<xsd:extension base="xsd:string"/>
					</xsd:simpleContent>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="CreationWizardPanel" type="tns:CreationWizardPanel"/>
	<xsd:complexType name="CreationWizardPanel">
		<xsd:annotation>
			<xsd:documentation>Must extend from gov.nih.nci.cagrid.data.ui.wizard.AbstractWizardPanel</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="classname" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:element name="ModificationUiPanel" type="tns:ModificationUiPanel"/>
	<xsd:complexType name="ModificationUiPanel">
		<xsd:annotation>
			<xsd:documentation>Must extend from gov.nih.nci.cagrid.data.ui.DataServiceModificationSubPanel</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="classname" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:element name="VersionUpgrade" type="tns:VersionUpgrade"/>
	<xsd:complexType name="VersionUpgrade">
		<xsd:attribute name="fromVersion" type="xsd:string" use="required"/>
		<xsd:attribute name="toVersion" type="xsd:string" use="required"/>
		<xsd:attribute name="classname" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:element name="CodegenHelpers" type="tns:CodegenHelpers"/>
	<xsd:complexType name="CodegenHelpers">
		<xsd:annotation>
			<xsd:documentation>Pre codegen must implement Must implement interface gov.nih.nci.cagrid.data.style.StyleCodegenPreProcessor, post codegen must implement Must implement interface gov.nih.nci.cagrid.data.style.StyleCodegenPostProcessor</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="preCodegenClassname" type="xsd:string" use="optional"/>
		<xsd:attribute name="postCodegenClassname" type="xsd:string" use="optional"/>
	</xsd:complexType>
	<xsd:element name="CreationHelper" type="tns:CreationHelper"/>
	<xsd:complexType name="CreationHelper">
		<xsd:annotation>
			<xsd:documentation>Must implement interface gov.nih.nci.cagrid.data.style.StyleCreationPostProcessor</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="postCreationClassname" type="xsd:string" use="required"/>
	</xsd:complexType>
</xsd:schema>
Last edited by
Knowledge Center (1516 days ago) , ...
Adaptavist Theme Builder Powered by Atlassian Confluence