Author: mattmann
Date: Tue Mar 8 06:22:53 2011
New Revision: 1079274
URL: http://svn.apache.org/viewvc?rev=1079274&view=rev
Log:
- progress towards OODT-151 Add xdocs for modules from old JPL site
Added:
oodt/trunk/xmlquery/src/site/xdoc/servlet/
oodt/trunk/xmlquery/src/site/xdoc/servlet/index.xml
Modified:
oodt/trunk/xmlquery/src/site/site.xml
Modified: oodt/trunk/xmlquery/src/site/site.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/xmlquery/src/site/site.xml?rev=1079274&r1=1079273&r2=1079274&view=diff
==============================================================================
--- oodt/trunk/xmlquery/src/site/site.xml (original)
+++ oodt/trunk/xmlquery/src/site/site.xml Tue Mar 8 06:22:53 2011
@@ -27,6 +27,7 @@ the License.
<menu name="User's Guide">
<item name="Tutorial" href="tutorial/"/>
<item name="DIS-Style Query" href="disquery/"/>
+ <item name="Query Servlet" href="servlet/"/>
</menu>
</body>
</project>
Added: oodt/trunk/xmlquery/src/site/xdoc/servlet/index.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/xmlquery/src/site/xdoc/servlet/index.xml?rev=1079274&view=auto
==============================================================================
--- oodt/trunk/xmlquery/src/site/xdoc/servlet/index.xml (added)
+++ oodt/trunk/xmlquery/src/site/xdoc/servlet/index.xml Tue Mar 8 06:22:53 2011
@@ -0,0 +1,640 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<document>
+
+ <properties>
+ <title>Query Servlet</title>
+ <author email="[email protected]">Sean Kelly</author>
+ </properties>
+
+ <body>
+ <section name="Query Servlet">
+
+ <p>The query servlet enables you to inject generic queries into
+ the OODT framework using HTTP. This enables you to query for
+ profiles and products without requiring a Java, RMI, or CORBA
+ enabled application.
+ </p>
+ </section>
+
+ <section name="Requirements">
+
+ <p>The query servlet accepts various parameters for a query and
+ turns them into an <code>XMLQuery</code> object. It uses this
+ object internally to send the query around the network and to
+ gather results. It then returns a <code>text/xml</code>
+ representation of the <code>XMLQuery</code> object (for product
+ queries) or a <code>text/xml</code> representation of all matching
+ profiles (for profile queries).
+ </p>
+
+ <p><strong>That means you must be able to process XML</strong> in
+ order to use the query servlet. Luckily, this isn't an onerous
+ restriction, as many languages are more than capable of doing so.
+ </p>
+
+ <p>For more details, view the Javadocs for the
+ <code>jpl.oodt.servlets.QueryServlet</code> class.</p>
+ </section>
+
+ <section name="Using the Query Servlet">
+
+ <p>In order to use the query servlet, you need to specify three
parameters:
+ </p>
+
+ <ol>
+ <li>You need to know the <strong>type of the query</strong> you
+ want to make. You will use a string value of
+ <code>profile</code> to make a profile query, and
+ <code>product</code> to make a product query. You specify
+ your choice in a parameter named <code>type</code>.
+ </li>
+
+ <li>You need to know the <strong>name of the object</strong>
+ that should receive the query. This takes the form of
+ <code>urn:eda:<var>protocol</var>:<var>name</var></code> such
+ as <code>urn:eda:corba:PDS.Profile</code> or
+ <code>urn:eda:rmi:NCI-ImageServer</code>. You specify the
+ object name in a parameter named <code>object</code>.
+ </li>
+
+ <li>You need <strong>the actual query</strong> you want to
+ send. You can express this in two ways:
+
+ <ol>
+ <li>As an <strong>keyword query expression</strong> like
+ <code>TARGET_NAME = MARS</code>. You specify the
+ query expression in a parameter named
+ <code>keywordQuery</code>.
+ </li>
+
+ <li>As a <strong>text serialized <code>XMLQuery</code>
+ object</strong>. You specify the XML document in a
+ parameter named <code>query</code>.
+ </li>
+ </ol>
+
+ <p>Using the latter enables you to fully specify all sorts of
+ parameters in the query. The former, though, is far
+ easier to use.
+ </p>
+
+ </li>
+ </ol>
+
+ <p>You then URL encode parameters' values and make either an HTTP
+ <code>GET</code> or <code>POST</code> request to the query
+ servlet. If all goes according to plan, the servlet will execute
+ the query and return to you a <code>text/xml</code> document
+ describing the results. You can then manipulate that document as
+ you see fit. For profile queries, the return value is a
+ <code><profiles></code> document with zero or more matching
+ profiles. For product queries, it's a <code><query></code>
+
+ document with the original <code>XMLQuery</code> object with any
+ product results in the <code><queryResults></code> section.
+ </p>
+
+ </section>
+
+ <section name="Query Examples">
+
+ <p>Let's look at a couple of concrete examples. In the first
+ example, we'll run a profile query against some planetary data
+ servers; the second example will run a product query for cancer
+ biomarkers.
+ </p>
+
+ <subsection name="Planetary Profile Query">
+
+ <p>Suppose you wanted to know what PDS product servers supported
+ the query element <code>ONLINE_FILE_SPECIFICATION_NAME</code>.
+ You could pass that element to the PDS system profile server named
+ <code>urn:eda:rmi:PDS.System.Profile</code> using the query
+ servlet at
+
<code>http://starbrite.jpl.nasa.gov/servlet/jpl.oodt.servlets.QueryServlet</code>.
+ You can formulate the HTTP <code>GET</code> request in a URL as
+ follows:
+ </p>
+
+ <p><code><a
href="http://starbrite.jpl.nasa.gov/servlet/jpl.oodt.servlets.QueryServlet?object=urn:eda:rmi:PDS.System.Profile&type=profile&keywordQuery=ONLINE_FILE_SPECIFICATION_NAME+%3D+ANY">http://starbrite.jpl.nasa.gov/servlet/jpl.oodt.servlets.QueryServlet?<br/>
object=urn:eda:rmi:PDS.System.Profile&<br/> type=profile&<br/>
keywordQuery=ONLINE_FILE_SPECIFICATION_NAME+%3D+ANY</a></code></p>
+
+ <p>Note that we've broken this URL into multiple lines for
+ readability. There should be no linebreaks in a real URL. Note
+ the following about this URL:
+ </p>
+
+ <ul>
+ <li>The question-mark separates the request URI from its
+ parameters.
+ </li>
+
+ <li>The parameters may come in any order.</li>
+
+ <li>The <code>object</code> parameter names the target of the
+ query; in this case, the RMI product server named
+ <code>urn:eda:rmi:PDS.System.Profile</code>.
+ </li>
+
+ <li>The <code>type</code> parameter specifies that we're doing a
+ <em>profile search</em>.</li>
+
+ <li>The <code>keywordQuery</code> parameter identifies the query
+ expression. Note the URL encoding: the spaces become
+ <code>+</code> symbols, and the equals sign become
+ <code>%3D</code>.
+ </li>
+ </ul>
+
+ <p>The response from such a query is an XML document; this XML
+ document describes matching profiles and may take a form such as
+ the following:</p>
+
+<source>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE profiles PUBLIC "-//JPL//DTD OODT Profile 1.1//EN"
+"http://starshine.jpl.nasa.gov:80/dtd/prof.dtd">
+
+<profiles>
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.7</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.ASU.Product</Identifier>
+ <Title>
+ PDS Arizona State University Data Node Product Server
+ </Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.ASU</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.ASU.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.ASU.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.6</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.RS.Product</Identifier>
+ <Title>PDS Radio Science Product Server</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.RS</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.RS.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.RS.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.4</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.Atmos.Product</Identifier>
+ <Title>PDS Atmospheres Product Server</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.Atmos</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.Atmos.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.Atmos.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.3</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.NAIF.Product</Identifier>
+ <Title>PDS NAIF Product Server</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.NAIF</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.NAIF.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.NAIF.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.2</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.Geo.Product</Identifier>
+ <Title>PDS Geosciences Product Server</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.GEO</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.Geo.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.Geo.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.1</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.CN.Product</Identifier>
+ <Title>PDS Central Node Archive Product Server</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.CN</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.CN.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.CN.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.10</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.CN.Profile</Identifier>
+ <Title>PDS.CN.Profile</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.CN</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.CN.Profile
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.CN.Profile</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.9</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.PPI.Product</Identifier>
+ <Title>
+ PDS Planetary Plasma Interactions Product Server
+ </Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.PPI</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.PPI.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.PPI.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+
+ <profile>
+ <profAttributes>
+ <profId>1.3.6.1.4.1.1306.2.1.1.8</profId>
+ <profType>profile</profType>
+ <profStatusId>active</profStatusId>
+ </profAttributes>
+ <resAttributes>
+ <Identifier>PDS.Img.Product</Identifier>
+ <Title>PDS Imaging Product Server</Title>
+ <Format>text/html</Format>
+ <resContext>NASA.PDS.Img</resContext>
+ <resClass>system.productServer</resClass>
+ <resLocation>
+ http://starbrite.jpl.nasa.gov/servlet/
+ jpl.oodt.servlets.ProductServlet?object=PDS.Img.Product
+ </resLocation>
+ <resLocation>urn:eda:rmi:PDS.Img.Product</resLocation>
+ </resAttributes>
+ <profElement>
+ <elemName>ONLINE_FILE_SPECIFICATION_NAME</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ <profElement>
+ <elemName>RETURN_TYPE</elemName>
+ <elemType>CHARACTER</elemType>
+ <elemEnumFlag>T</elemEnumFlag>
+ <elemValue>PDS_ZIP</elemValue>
+ <elemValue>PDS_LABEL</elemValue>
+ <elemValue>RAW</elemValue>
+ <elemMaxOccurrence>0</elemMaxOccurrence>
+ </profElement>
+ </profile>
+</profiles>
+</source>
+
+ </subsection>
+
+ <subsection name="Biomarker Product Query">
+
+ <p>Suppose you had a query servlet available at
+ <code>http://pancreas/qs</code>, and you want to query the CORBA
+ product server <code>urn:eda:corba:TissueBank</code> with the
+ query expression <code>SeverityLevel = 3</code>. You can
+ formulate the entire <code>GET</code> request as the following
+ URL:
+ </p>
+
+ <source>
+ http://pancreas/qs?
+ type=product&
+ object=urn:eda:corba:TissueBank&
+ keywordQuery=SeverityLevel+%3D+3
+ </source>
+
+ <p>(Again, we've broken the URL for readability.) The result to
+ this query could be an XML document like the following:
+ </p>
+
+<source>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE query PUBLIC "-//JPL//DTD OODT Query 1.0//EN"
+ "http://pancreas/dtd/query.dtd">
+
+<query>
+ <queryAttributes>
+ <queryId>UNKNOWN</queryId>
+ <queryTitle>UNKNOWN</queryTitle>
+ <queryDesc>UNKNOWN</queryDesc>
+ <queryType>QUERY</queryType>
+ <queryStatusId>ACTIVE</queryStatusId>
+ <querySecurityType>UNKNOWN</querySecurityType>
+ <queryRevisionNote>
+ 1999-12-12 JSH V1.0 Under Development
+ </queryRevisionNote>
+ <queryDataDictId>UNKNOWN</queryDataDictId>
+ </queryAttributes>
+ <queryResultModeId>ATTRIBUTE</queryResultModeId>
+ <queryPropogationType>BROADCAST</queryPropogationType>
+ <queryPropogationLevels>N/A</queryPropogationLevels>
+ <queryMimeAccept>*/*</queryMimeAccept>
+ <queryMaxResults>100</queryMaxResults>
+ <queryResults>0</queryResults>
+ <queryKWQString>SeverityLevel = 3</queryKWQString>
+ <querySelectSet>
+ <queryElement>
+ <tokenRole>LITERAL</tokenRole>
+ <tokenValue>3</tokenValue>
+ </queryElement>
+ <queryElement>
+ <tokenRole>elemName</tokenRole>
+ <tokenValue>SeverityLevel</tokenValue>
+ </queryElement>
+ <queryElement>
+ <tokenRole>RELOP</tokenRole>
+ <tokenValue>EQ</tokenValue>
+ </queryElement>
+ </querySelectSet>
+ <queryFromSet/>
+ <queryWhereSet/>
+ <queryResultSet>
+ <resultElement>
+ <resultId>1</resultId>
+ <resultMimeType>text/plain</resultMimeType>
+ <profId>TissueBank</profId>
+ <identifier/>
+ <resultHeader>
+ <headerElement>
+ <elemName>UNKNOWN</elemName>
+ <elemType>TEXT</elemType>
+ </headerElement>
+ </resultHeader>
+ <Resultvalue xml:space="preserve">
+ PatientIDs=[1,2,4,7,11,19,22]</resultValue>
+ </resultElement>
+ </queryResultSet>
+</query>
+</source>
+
+ <p>Instead of using the <code>keywordQuery</code> parameter, you
+ can create your own <code>XMLQuery</code> document and pass it in
+ as the <code>query</code> parameter instead. The query document
+ would look like this:
+ </p>
+
+ <source>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE query PUBLIC "-//JPL//DTD OODT Query 1.0//EN"
+ "http://pancreas:80/dtd/query.dtd">
+
+<query>
+ <queryAttributes>
+ <queryId>expr1</queryId>
+ <queryTitle>Command-line Expression Query</queryTitle>
+ <queryDesc>
+ The expression for this query came from the command-line.
+ </queryDesc>
+ <queryType>QUERY</queryType>
+ <queryStatusId>ACTIVE</queryStatusId>
+ <querySecurityType>UNKNOWN</querySecurityType>
+ <queryRevisionNote>
+ 1999-12-12 JSH V1.0 Under Development
+ </queryRevisionNote>
+ <queryDataDictId>UNKNOWN</queryDataDictId>
+ </queryAttributes>
+ <queryResultModeId>ATTRIBUTE</queryResultModeId>
+ <queryPropogationType>BROADCAST</queryPropogationType>
+ <queryPropogationLevels>N/A</queryPropogationLevels>
+ <queryMimeAccept>*/*</queryMimeAccept>
+ <queryMaxResults>100</queryMaxResults>
+ <queryResults>0</queryResults>
+ <queryKWQString>SeverityLevel = 3</queryKWQString>
+ <querySelectSet/>
+ <queryFromSet/>
+ <queryWhereSet>
+ <queryElement>
+ <tokenRole>elemName</tokenRole>
+ <tokenValue>SeverityLevel</tokenValue>
+ </queryElement>
+ <queryElement>
+ <tokenRole>LITERAL</tokenRole>
+ <tokenValue>3</tokenValue>
+ </queryElement>
+ <queryElement>
+ <tokenRole>RELOP</tokenRole>
+ <tokenValue>EQ</tokenValue>
+ </queryElement>
+ </queryWhereSet>
+ <queryResultSet/>
+</query>
+</source>
+
+ <p>Passing such a long string as a URL parameter in a
+ <code>GET</code> request can be tricky, though. For such long
+ parameters, it's better to use a <code>POST</code> request
+ instead. See your HTTP API documentation for details on
+ formulating <code>POST</code> requests.
+ </p>
+ </subsection>
+ </section>
+ </body>
+</document>