http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/site/xdoc/info/index.xml
----------------------------------------------------------------------
diff --git a/profile/src/site/xdoc/info/index.xml 
b/profile/src/site/xdoc/info/index.xml
deleted file mode 100755
index fe44c1f..0000000
--- a/profile/src/site/xdoc/info/index.xml
+++ /dev/null
@@ -1,848 +0,0 @@
-<?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>Information Captured in a Profile</title>
-    <author email="[email protected]">Sean Kelly</author>
-  </properties>
-  <!-- Infected Mushroom - Deeply Disturbed -->
-  <body>
-    <section name="Information Captured in a Profile">
-
-      <p>A profile serves as a generic template for describing the
-       characteristics of a resource. The question posed to a profile
-       generally takes the form of, "Can you answer <var>X</var>?" or
-       "Do you know the location of <var>X</var>?" where <var>X</var>
-       is some resource being sought. The more fully a profile describes
-       a particular resource, the better the profile can be used to
-       determine if the resource has the information in <var>X</var>.
-      </p>
-
-    </section>
-
-    <section name="Information and Organization">
-      <p>Profile servers capture three kinds of information:</p>
-
-      <ul>
-       <li><b>Resource Attributes</b> <p>Resource attributes are
-         metadata about the resource's <em>inception</em>.  These
-         attributes include the creator of the resource, in what
-         language it exists, when it was created, and so forth.
-         These attributes are based on the work of the <a
-         href="http://www.dmci.org/";>Dublin Core Metadata Initiative</a>.
-         </p>
-       </li>
-
-       <li><b>Profile Elements</b> <p>Profile elements are metadata
-           about the resource's <em>composition</em>.  These tell you
-           about the morphology of the resource, such as data types
-           captured within in, minimum and maximum values, synonymous
-           elements, and so forth.  These attributes are based on <a
-           href="http://metadata-standards.org/11179/";>ISO/IEC 11179
-           standards</a>.
-         </p>
-       </li>
-
-       <li><b>Profile Attributes</b> <p>Profile attributes are
-           metadata about the <em>profile itself</em>, such as who
-           made it, whether it's classified, revision notes, and so
-           forth.  It also has a unique identifying <a
-           href="http://www.alvestrand.no/objectid/index.html";>Object
-           Identifier (OID)</a>.
-         </p>
-       </li>
-      </ul>
-
-      <p>The following class diagram shows the relationship between
-       the different parts of a profile:
-      </p>
-
-      <img src="../images/class.png" alt="Class diagram"/>
-
-      <p>While this diagram shows the Java field names and Java
-       classes, the relationship applies to profiles whether they
-       exist as Java objects, as RDF documents, or as XML documents
-       in the profile vocabulary.
-      </p>
-    </section>
-
-    <section name="Inception Metadata">
-      <p>Profiles, whether expressed in RDF or in their own XML
-       vocabulary, have a section for capturing information about the
-       resource's inception.  This includes information about when the
-       resource was created, who created it, in what language it
-       exists, and so forth.  Profiles use the element set recommended
-       by the Dublin Core Metadata Initiative (DCMI) set in order to
-       describe the inception of a resource, with some extensions.
-      </p>
-
-      <p>Collectively, these metadata are called the <i>resource
-       attributes</i> or <code>resAttributes</code> of the profile.
-       Every profile has one and only one set of
-       <code>resAttributes</code>.  The metadata elements within the
-       <code>resAttributes</code> are defined in this section.
-      </p>
-
-      <subsection name="Identifier">
-       <p>As defined by the DCMI, the <code>Identifier</code> of a
-         resource is some unambiguous way to identify the resource.
-         In the profile implementation, one and only one
-         <code>Identifier</code> is <span
-         class="emphasis"><em>required</em></span>.
-       </p>
-
-       <p>It's highly recommended that <code>Identifier</code>s and
-         <code>resLocation</code>s (see below) be URIs, but there's
-         no software enforcment for this <em>unless you convert a
-         Java profile to RDF</em> with the <code>toRDF</code> method.
-         Identifiers should be more like URNs, while resLocations
-         should be more like URLs.
-       </p>
-      </subsection>
-      <subsection name="Title">
-       <p>The <code>Title</code> names the resource, and is the name by
-         which the resource is formally known.  The <code>Title</code> is
-         optional; if present, it may occur only once in a profile.
-       </p>
-      </subsection>
-      <subsection name="Format">
-       <p>The <code>Format</code> indicates the manifestation of the
-         resource.  You can specify any number of <code>Format</code>s in
-         a profile.
-       </p>
-      </subsection>
-      <subsection name="Description">
-       <p>The <code>Description</code> element contains a free text
-         account of the content of the resource.  It's optional in a
-         profile; if present, it may occur only once.
-       </p>
-      </subsection>
-      <subsection name="Creator">
-       <p>Zero or more <code>Creator</code>s may be specified in a
-         profile.  <code>Creator</code>s contain the name of people or
-         organizations that created the resource.
-       </p>
-      </subsection>
-      <subsection name="Subject">
-       <p>You can list zero or more <code>Subject</code>s in a profile.
-         The purpose of the <code>Subject</code> elements is to contain a
-         keywords that describe the resource, usually selected from a
-         controlled vocabulary.
-       </p>
-      </subsection>
-      <subsection name="Publisher">
-       <p>Any number of <code>Publisher</code> elements may appear in a
-         profile.  They contain the organization responsible for
-         making the resource available.
-       </p>
-      </subsection>
-      <subsection name="Contributor">
-       <p>A <code>Contributor</code> is a person or organization
-         providing auxilliary work towards the resource's creation.
-         Any number of <code>Contributor</code>s may be listed in a
-         profile.
-       </p>
-      </subsection>
-      <subsection name="Date">
-       <p><code>Date</code> elements indicate the times in history when
-         the resource was created.  You can include any number of
-         <code>Date</code>s in a profile, although typically you'll
-         specify just one if you speciy any at all.
-       </p>
-      </subsection>
-      <subsection name="Type">
-       <p>The <code>Type</code> element indicates the nature of the
-         content of the resource, such as "fiction" for a work of
-         fiction or "image" for a dataset rendered graphically.  You
-         can include any number of <code>Type</code>s in a profile.
-       </p>
-      </subsection>
-      <subsection name="Source">
-       <p>When a resource is derived others, the <code>Source</code>
-         element should indicate the <code>Identifier</code>s of the
-         referenced resources.  You can specify any number of
-         <code>Source</code>s in a profile.
-       </p>
-      </subsection>
-      <subsection name="Language">
-       <p>For resources that contain natural language content, the
-         <code>Language</code> element indicates the languages in use.
-         You can specify this element any number of times in a
-         profile.
-       </p>
-      </subsection>
-      <subsection name="Relation">
-       <p>When a resource is related to others, you can specify the
-         <code>Identifier</code>s of the related resources using zero or
-         more <code>Relation</code> elements.
-       </p>
-      </subsection>
-      <subsection name="Coverage">
-       <p>For resources that cover a space or time or jurisdiction,
-         use the <code>Coverage</code> element to indicate such coverage.
-         This element may be listed any number of times in a profile,
-         and its content should come from a controlled vocabulary.
-         For resources with specific coordinate systems, it's better
-         to use profile elements, described below.
-       </p>
-      </subsection>
-      <subsection name="Rights">
-       <p>Copyright, ownership, redistribution, use, and other legal
-         issues may exist for a resource.  When that happens, use the
-         <code>Rights</code> element to list the rights management
-         information.  You can list zero or more <code>Rights</code>
-         elements in a profile.
-       </p>
-       <p><em>Note:</em> The official name of element for is plural
-         <code>Rights</code>; this is inconsistent with the other
-         metadata elements, but is consistent with the DCMI.
-       </p>
-      </subsection>
-      <subsection name="resContext">
-       <p>The <code>resContext</code> element identifies the application
-         environment or discipline within which the resource
-         originates and is derived from a taxonomy of scientific
-         disciplines.  This element is required in a profile and may
-         occur multiple times.
-       </p>
-
-       <p>As an example, a <code>resContext</code> of
-         <code>NASA.PDS.Geoscience</code> tells that the resource is
-         associated with the Geoscience node of the Planetary Data
-         System.
-       </p>
-      </subsection>
-      <subsection name="resAggregation">
-       <p>The <code>resAggregation</code> element indicates the
-         aggregative structure of the resource.  It tells you what
-         you'll get if you retrieve the resource: a granule, a
-         dataset, or a collection of datasets.  The legal values of
-         this optional elements are:
-       </p>
-
-       <ul>
-         <li><code>granule</code>, meaning the resource is a single
-           product
-         </li>
-         <li><code>dataSet</code>, meaning the resource is a set of
-           products
-         </li>
-         
-         <li><code>dataSetCollection</code>, meaning the resource is
-           collection of datasets
-         </li>
-       </ul>
-
-       <p>The <code>resAggregation</code> element is optional; however,
-         if specified, it may appear in a profile only once.
-       </p>
-      </subsection>
-      <subsection name="resClass">
-       <p>The <code>resClass</code> element identifies the kind of the
-         resource within a taxonomy of resource types.  It's a
-         <em>required</em> element that is used by the OODT Framework
-         to determine how to treat the profile as well as the
-         resource named by the profile.
-       </p>
-
-       <p>For example, a <code>resClass</code> of
-         <code>system.productServer</code> indicates that the resource is
-         an OODT product server.  A query that matches this profile
-         means that if the same query were given to the identified
-         product server, it would yield a result.  A
-         <code>resClass</code> of <code>system.profileServer</code> means the
-         resource is a profile server.  That means that while the
-         current profile server may or may not provide a matching
-         profile, another profile server might, forming an implicit
-         digraph of profile servers.  Other valid <code>resClass</code>
-         values include <code>data.granule</code>, <code>data.dataSet</code>,
-         and <code>application.interface</code>.
-       </p>
-      </subsection>
-
-      <subsection name="resLocation">
-       <p>Zero or more <code>resLocation</code> elements may appear in
-         a profile.  They tell where the resource is located, easily
-         the most important part of the profile.  Because this
-         element may appear several times, all locations should be
-         considered valid; the application may pick the one that's
-         most convenient.  The <code>resLocation</code> may also appear zero
-         times.  This means that the profile indicates solely that
-         the resource existswhere is unknown.
-       </p>
-
-       <p>The interpretation of the resLocation is as a URI.  For
-         example, a <code>resClass</code> of
-         <code>system.productServer</code> or
-         <code>system.profileServer</code> means that the
-         <code>resLocation</code> indicates an URN to a software object
-         name.  Querying that object will yield either the desired
-         result (for product servers) or more matching profiles (for
-         profile servers).  For a resClass of <code>data.granule</code>
-         or <code>data.dataSet</code>, the <code>resLocation</code> is an URL
-         to the granule or dataset.
-       </p>
-      </subsection>
-    </section>
-
-    <section name="Composition Metadata">
-      <p>The most interesting part of a profile is in the metadata
-       that describes the composition of the resource that the
-       profile profiles.  The composition metadata is what enables a
-       profile server to tell if a particular resource can answer a
-       query.
-      </p>
-
-      <p>The composition metadata is based on the data element
-       description standards in ISO/IEC standard 11179.  They are the
-       <i>profile elements</i> or <code>profElement</code>s of a profile.
-       Every profile may have zero or more <code>profElement</code>s, the
-       components of which are discussed in this section.
-      </p>
-
-      <subsection name="elemId">
-       <p>The <code>elemId</code> is an optional universally unique
-         identifier applied to the element.
-       </p>
-      </subsection>
-      <subsection name="elemName">
-       <p>The <code>elemName</code> is the <em>required</em> name of the
-         profile element.  It serves as the title role of one of the
-         components of the resource.
-       </p>
-      </subsection>
-      <subsection name="elemDesc">
-       <p>The <code>elemDesc</code> is the description of the profile
-         element.  Although the title may often be enough to identify
-         the purpose of the profile element, the description should
-         be used to provide any further, free-text information that
-         may be of importance to analysts and profile administrators.
-         The description is optional.
-       </p>
-      </subsection>
-      <subsection name="elemType">
-       <p>The <code>elemType</code> indicates the type of data
-         represented in the profile element, synonymous to the
-         ISO/IEC 11179 <code>Datatype</code> attribute.  The permissible
-         values are:
-       </p>
-
-       <ul>
-         <li><code>boolean</code></li>
-         <li><code>character</code></li>
-         <li><code>date_time</code></li>
-         <li><code>enumerated</code></li>
-         <li><code>integer</code></li>
-         <li><code>ordinal</code></li>
-         <li><code>rational</code></li>
-         <li><code>scaled</code></li>
-         <li><code>real</code></li>
-         <li><code>complex</code></li>
-         <li><code>state</code></li>
-         <li><code>void</code></li>
-       </ul>
-
-       <p>This element is optional within a profile element.  When
-         it's not present, the profile element merely indicates that
-         the resource's content possesses the attribute, but more is
-         not known.
-       </p>
-      </subsection>
-
-      <subsection name="elemUnit">
-       <p>The <code>elemUnit</code> indicates the units associated with
-         the values of the data element. This element is synonymous
-         to the ISO/IEC 11179 attribute <code>unit.of.quantity</code>.
-         Values for this optional element should be selected from
-         standardized tables of units.
-       </p>
-      </subsection>
-
-      <subsection name="elemEnumFlag, elemValue, elemMinValue, and 
elemMaxValue">
-       <p>The <code>elemEnumFlag</code> tells how possible values of the
-         profile element are specified.  It works with the
-         <code>elemValue</code>, <code>elemMinValue</code>, and
-         <code>elemMaxValue</code> elements:
-       </p>
-
-       <ul>
-         <li>If the <code>elemEnumFlag</code>'s value is <code>T</code> and
-           one or more <code>elemValue</code>s appear, then the values
-           listed are the valid values of the element.
-         </li>
-         <li>If the value is <code>F</code>, then a closed range of
-           values bounded by the profile's <code>elemMinValue</code> and
-           <code>elemMaxValue</code> elements indicates the valid values.
-         </li>
-         <li>If the value is <code>T</code> but no <code>elemValue</code>s
-           appear, then it means that any value is a valid
-           value for the resource.
-         </li>
-       </ul>
-
-      </subsection>
-
-      <subsection name="elemSynonym">
-       <p>Often, a characteristic of a resource will go by several
-         names, especially between scientific disciplines.  What one
-         person may call <i>latitude</i>, another may call <i>x
-           coordinate</i>, for example.  By specifiyng synonyms for a
-         profile element, you can assist in automatic correlation of
-         results and cross-disciplinary discovery.
-       </p>
-
-       <p>The <code>elemSynonym</code> provides a way to do just that.
-         Zero or more <code>elemSynonym</code>s may appear in a profile
-         element.  The values of this element are names from data
-         dictionaries other than the discipline data dictionary
-         hosting the profile.
-       </p>
-      </subsection>
-      <subsection name="elemObligation">
-       <p>The <code>elemObligation</code> tells whether the data element
-         is required to always or sometimes be present. This element
-         is synonymous to the ISO/IEC 11179 attribute
-         <code>Obligation</code>, and is optional within a profile
-         element.
-       </p>
-
-       <p>The legal values for this element are <code>Required</code> and
-         <code>Optional</code>, with the obvious meanings.
-       </p>
-      </subsection>
-      <subsection name="elemComment">
-       <p>The <code>elemComment</code> field provides a remark concerning
-         the application of the data element.  This element is
-         synonymous to the ISO/IEC 11179 attribute <code>Comment</code>,
-         and is optional within a profile element.
-       </p>
-      </subsection>
-    </section>
-
-    <section name="Metadata about the Profile">
-      <p>For a profile server to manage a set of profiles, it's
-       necessary to have metadata contained within the profile that
-       describes the profile itself.  This metadata, collectively
-       called the profile attributes, or <code>profAttributes</code>,
-       serves that purpose.
-      </p>
-
-      <p>Most of the elements within the <code>profAttributes</code> are
-       optional.  This sections describes each of them.
-      </p>
-
-      <subsection name="profId">
-       <p>The <code>profId</code> serves to give a unique identifier to
-         the profile.  It should be expressed as a URI, and often as
-         an URN.
-       </p>
-      </subsection>
-      <subsection name="profVersion">
-       <p>The <code>profVersion</code> identifies the version number of
-         the profile.
-       </p>
-      </subsection>
-      <subsection name="profType">
-       <p>The <code>profType</code> identifies the type of the profile.
-         The type that typically appears here is <code>profile</code>,
-         meaning the profile is a profile (obviously).
-       </p>
-
-       <p>Another type that can be here is <code>dataDict</code>, which
-         indicates that the profile doesn't describe a resource, but
-         instead is a data dictionary for other profiles.  Such a
-         profile's composition elements name the expected profile
-         elements and ranges of valid valuese that will appear in
-         other profiles.  The <code>profDataDictId</code> element
-         identifies the profile serving as its data dictionary.
-       </p>
-      </subsection>
-      <subsection name="profStatusId">
-       <p>The <code>profStatusId</code> identifies the state of the
-         profile.  Profiles may be either <code>active</code> or
-         <code>inactive</code>.  An inactive profile is likely maintained
-         for historical or exemplary reasons but is otherwise not
-         currently used for searches or resource descriptions.
-       </p>
-      </subsection>
-      <subsection name="profSecurityType">
-       <p>The <code>profSecurityType</code> identifies whether the
-         information contained in the profile may be of a sensitive
-         nature.  Any string is valid here as the current OODT
-         software does not use this field.
-       </p>
-      </subsection>
-      <subsection name="profParentId">
-       <p>The <code>profParentId</code> optionally identifies the URI of
-         the parent of this profile.  Profiles may be arranged
-         hierarchically in a singly rooted tree in a forest.
-       </p>
-      </subsection>
-      <subsection name="profChildId">
-       <p>The <code>profChildId</code>
-         identifies zero or more children (by duplicating the element) of
-         this profile.
-       </p>
-      </subsection>
-      <subsection name="profRegAuthority">
-       <p>The <code>profRegAuthority</code>
-         names the registration authority responsible for authoring and
-         maintaining the profile.
-       </p>
-      </subsection>
-      <subsection name="profRevisionNote">
-       <p>The <code>profRevisionNote</code> appears zero or more times in
-         the profile to describe changes made to it over time.  The
-         notes are free form text, and each element is ordered from
-         newest to oldest note.
-       </p>
-      </subsection>
-      <subsection name="profDataDictId">
-       <p>The <code>profDataDictId</code>
-         identifies the profile providing a data dictionary to the
-         current profile.
-       </p>
-      </subsection>
-    </section>
-
-    <section name="Describing Resources">
-      <p>Let's take a look at how profiles would describe resources by
-       looking at an example set of scientific data.  Suppose you
-       archive high temperature data for your weather service; this
-       data comes in the form of tables of latitude/longitude
-       locations and the high temperature recorded at each point.
-       Since you're archiving daily high temperatures, there's one
-       table per day, so each day's table is a discrete resource.
-       Let's say you've got just three days of data so far, though,
-       and it looks like this (to keep things simple).
-      </p>
-
-      <table>
-       <thead>
-         <tr>
-           <th>Day Number</th> 
-           <th>Lat</th>
-           <th>Lon</th>
-           <th>High Temp</th>
-         </tr>
-       </thead>
-       <tbody>
-         <tr><td 
rowspan="3">1</td><td>104.1</td><td>39.2</td><td>26.5</td></tr>
-         <tr><td>110.3</td><td>42.4</td><td>29.9</td></tr>
-         <tr><td>121.5</td><td>45.6</td><td>23.3</td></tr>
-
-         <tr><td 
rowspan="3">2</td><td>104.1</td><td>39.2</td><td>31.5</td></tr>
-         <tr><td>110.3</td><td>42.4</td><td>30.9</td></tr>
-         <tr><td>121.5</td><td>45.6</td><td>27.5</td></tr>
-
-         <tr><td 
rowspan="3">2</td><td>104.1</td><td>39.2</td><td>20.8</td></tr>
-         <tr><td>110.3</td><td>42.4</td><td>19.5</td></tr>
-       </tbody>
-      </table>
-
-      <p>(On day #3, vandals destroyed the weather sensor station at
-       (121.5, 45.6), so there are only two measurements that day.)
-      </p>
-
-      <p>To make profiles for each day's of data, let's gather some
-       data that will be common to all of them.  First, say the
-       weather service's OID is 2.6.1.9, and for all collected data
-       the weather service has reserved an OID 2.6.1.9.2, high
-       temperature measurements 2.6.1.9.2.1.  They choose to make a
-       URI for each dataset,
-       <code>urn:weather:data:highs:<var>day-number</var></code>
-       where <var>day-number</var> is the day number of the data.
-       The official creator for all this data will be "Weather
-       Service", under subject keywords "weather", "temperatures",
-       and "measurements".  They'll also make the data tables
-       accessible as web documents in MIME format
-       <code>text/tab-separated-values</code> at the address
-       <code>http://weather.gov/data/highs/<var>day-number</var>.txt</code>.
-      </p>
-
-      <p>Here, then, is the profile for the day 1:</p>
-
-      <source><![CDATA[<profile>
-  <profAttributes>
-    <profId>2.6.1.9.2.1.1</profId>
-    <profType>profile</profType>
-    <profStatusId>active</profStatusId>
-  </profAttributes>
-  <resAttributes>
-    <Identifier>urn:weather:data:highs:1</Identifier>
-    <Title>High Temperatures - Day 1</Title>
-    <Format>text/tab-separated-values</Format>
-    <Creator>Weather Service</Creator>
-    <Subject>weather</Subject>
-    <Subject>temperatures</Subject>
-    <Subject>measurements</Subject>
-    <resContext>NOAA.NWS.Data</resContext>
-    <resClass>data.granule</resClass>
-    <resLocation>http://weather.gov/data/highs/1.txt</resLocation>
-  </resAttributes>
-  <profElement>
-    <elemName>latitude</elemName>
-    <elemType>real</elemType>
-    <elemUnit>degree</elemUnit>
-    <elemEnumFlag>F</elemEnumFlag>
-    <elemMinValue>104.1</elemMinValue>
-    <elemMaxValue>121.5</elemMaxValue>
-  </profElement>
-  <profElement>
-    <elemName>longitude</elemName>
-    <elemType>real</elemType>
-    <elemUnit>degree</elemUnit>
-    <elemEnumFlag>F</elemEnumFlag>
-    <elemMinValue>39.2</elemMinValue>
-    <elemMaxValue>45.6</elemMaxValue>
-  </profElement>
-  <profElement>
-    <elemName>temperature</elemName>
-    <elemType>real</elemType>
-    <elemUnit>celsius</elemUnit>
-    <elemEnumFlag>F</elemEnumFlag>
-    <elemMinValue>23.3</elemMinValue>
-    <elemMaxValue>29.9</elemMaxValue>
-  </profElement>
-</profile>]]></source>
-
-      <p>Someone searching for a high temperature that exceeded 25
-       degrees, for example, would find this as a matching
-       resource, as the <code>elemMinValue</code> for
-       <code>temperature</code> is 23.3, and 25 is over that.
-      </p>
-
-      <p>Here are all three profiles in one document:</p>
-
-      <source><![CDATA[<profiles>
-  <profile>
-    <profAttributes>
-      <profId>2.6.1.9.2.1.1</profId>
-      <profType>profile</profType>
-      <profStatusId>active</profStatusId>
-    </profAttributes>
-    <resAttributes>
-      <Identifier>urn:weather:data:highs:1</Identifier>
-      <Title>High Temperatures - Day 1</Title>
-      <Format>text/tab-separated-values</Format>
-      <Creator>Weather Service</Creator>
-      <Subject>weather</Subject>
-      <Subject>temperatures</Subject>
-      <Subject>measurements</Subject>
-      <resContext>NOAA.NWS.Data</resContext>
-      <resClass>data.granule</resClass>
-      <resLocation>http://weather.gov/data/highs/1.txt</resLocation>
-    </resAttributes>
-    <profElement>
-      <elemName>latitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>104.1</elemMinValue>
-      <elemMaxValue>121.5</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>longitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>39.2</elemMinValue>
-      <elemMaxValue>45.6</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>temperature</elemName>
-      <elemType>real</elemType>
-      <elemUnit>celsius</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>23.3</elemMinValue>
-      <elemMaxValue>29.9</elemMaxValue>
-    </profElement>
-  </profile>
-  <profile>
-    <profAttributes>
-      <profId>2.6.1.9.2.1.2</profId>
-      <profType>profile</profType>
-      <profStatusId>active</profStatusId>
-    </profAttributes>
-    <resAttributes>
-      <Identifier>urn:weather:data:highs:2</Identifier>
-      <Title>High Temperatures - Day 2</Title>
-      <Format>text/tab-separated-values</Format>
-      <Creator>Weather Service</Creator>
-      <Subject>weather</Subject>
-      <Subject>temperatures</Subject>
-      <Subject>measurements</Subject>
-      <resContext>NOAA.NWS.Data</resContext>
-      <resClass>data.granule</resClass>
-      <resLocation>http://weather.gov/data/highs/2.txt</resLocation>
-    </resAttributes>
-    <profElement>
-      <elemName>latitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>104.1</elemMinValue>
-      <elemMaxValue>121.5</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>longitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>39.2</elemMinValue>
-      <elemMaxValue>45.6</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>temperature</elemName>
-      <elemType>real</elemType>
-      <elemUnit>celsius</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>27.5</elemMinValue>
-      <elemMaxValue>31.5</elemMaxValue>
-    </profElement>
-  </profile>
-  <profile>
-    <profAttributes>
-      <profId>2.6.1.9.2.1.3</profId>
-      <profType>profile</profType>
-      <profStatusId>active</profStatusId>
-    </profAttributes>
-    <resAttributes>
-      <Identifier>urn:weather:data:highs:3</Identifier>
-      <Title>High Temperatures - Day 3</Title>
-      <Format>text/tab-separated-values</Format>
-      <Creator>Weather Service</Creator>
-      <Subject>weather</Subject>
-      <Subject>temperatures</Subject>
-      <Subject>measurements</Subject>
-      <resContext>NOAA.NWS.Data</resContext>
-      <resClass>data.granule</resClass>
-      <resLocation>http://weather.gov/data/highs/3.txt</resLocation>
-    </resAttributes>
-    <profElement>
-      <elemName>latitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>104.1</elemMinValue>
-      <elemMaxValue>110.3</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>longitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>39.2</elemMinValue>
-      <elemMaxValue>42.4</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>temperature</elemName>
-      <elemType>real</elemType>
-      <elemUnit>celsius</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>19.5</elemMinValue>
-      <elemMaxValue>20.8</elemMaxValue>
-    </profElement>
-  </profile>
-</profiles>]]></source>
-
-      <p>Given this set of profiles, a profile search for resources
-       with <code>latitude &gt; 120.0</code> would match profiles
-       for day 1 and 2, but not day 3.  Actual profile searches are
-       possible by taking the above document and loading it into
-       the <code>LightweightProfileHandler</code>, yet that becomes
-       impractical for many many profiles, as it holds all of the
-       profile objects in memory and "searches" them in place.
-       More likely, data such as these would be stored in a
-       relational database, and the matching profiles would be
-       generated on demand.
-      </p>
-
-      <p>Let's make one more profile, a profile that describes
-       <em>the entire collection</em>:
-      </p>
-
-      <source><![CDATA[
-  <profile>
-    <profAttributes>
-      <profId>2.6.1.9.2.1</profId>
-      <profType>profile</profType>
-      <profStatusId>active</profStatusId>
-    </profAttributes>
-    <resAttributes>
-      <Identifier>urn:weather:data:highs:index</Identifier>
-      <Title>High Temperatures</Title>
-      <Format>text/tab-separated-values</Format>
-      <Creator>Weather Service</Creator>
-      <Subject>weather</Subject>
-      <Subject>temperatures</Subject>
-      <Subject>measurements</Subject>
-      <resContext>NOAA.NWS.Data</resContext>
-      <resClass>system.profileServer</resClass>
-      <resLocation>urn:weather:data:highs:ProfileServer</resLocation>
-    </resAttributes>
-    <profElement>
-      <elemName>latitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>104.1</elemMinValue>
-      <elemMaxValue>121.5</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>longitude</elemName>
-      <elemType>real</elemType>
-      <elemUnit>degree</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>19.5</elemMinValue>
-      <elemMaxValue>31.5</elemMaxValue>
-    </profElement>
-    <profElement>
-      <elemName>temperature</elemName>
-      <elemType>real</elemType>
-      <elemUnit>celsius</elemUnit>
-      <elemEnumFlag>F</elemEnumFlag>
-      <elemMinValue>19.5</elemMinValue>
-      <elemMaxValue>31.5</elemMaxValue>
-    </profElement>
-  </profile>]]></source>
-
-      <p>Note that in addition to several changes in the resource
-       attributes, we've also changed the profile elements to
-       cover the entire range of latitude, longitude, and
-       temperature in the entire data set.  So, for temperature,
-       the lowest high temperature for all three days was 19.5,
-       and the highest was 31.5.  Now, a profile search can for
-       temperatures greater than 30 will match the profile for
-       the whole collection, as well as the profile for day #2.
-      </p>
-
-      <p>In fact, the OODT framework supports automatic drill-down of
-       this kind.  The <a href="/grid-query/">Query Service</a>, upon
-       encountering a matching profile, checks to see if the
-       <code>resClass</code> is <code>system.profileServer</code>,
-       and if so, will pass the query to the profile server at the
-       <code>resLocation</code> in the matched profile.  It will
-       gather up all matching profiles and return them to the user.
-       In this way, it can follow a directed graph of linked profile
-       servers (automatically avoiding cycles), and gathering more
-       and more results.
-      </p>
-    </section>
-  </body>
-</document>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/site/xdoc/querying/index.xml
----------------------------------------------------------------------
diff --git a/profile/src/site/xdoc/querying/index.xml 
b/profile/src/site/xdoc/querying/index.xml
deleted file mode 100755
index 855774a..0000000
--- a/profile/src/site/xdoc/querying/index.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<?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>Querying Profile Elements</title>
-    <author email="[email protected]">Sean Kelly</author>
-  </properties>
-  <!-- Four Carry Nuts - Hexagon -->
-  <body>
-    <section name="Querying Profile Elements">
-
-      <p>As desribed in <a href="../info/">Information Captured in a
-       Profile</a>, profile elements describe the composition of a
-       resource using metadata descriptions taken from the <a
-       href="http://metadata-standards.org/11179/";>ISO/IEC 11179
-       standards</a>.  The profile elements catalog lists of valid
-       values, minimum and maximum values, data types, and so forth.
-      </p>
-
-      <p>As you develop a profile handler to perform queries and
-       generate profiles, you'll encounter three cases when querying
-       profile elements or the data sources they describe:
-      </p>
-
-      <ul>
-       <li>Querying ranges of values</li>
-       <li>Querying enumerated values</li>
-       <li>Querying unspecified profile lements</li>
-      </ul>
-    </section>
-
-    <section name="Queries Against Ranges">
-      <p>Ranged profile elements are those that describe an attribute
-       of a resource's composition in terms of a continuous space of
-       valid values.  In the Java implementation, there's a subclass
-       of <code>ProfileElement</code> to represent such ranges:
-       <code>RangedProfileElement</code>.  In the XML representation,
-       the <code>&lt;elemEnumFlag&gt;</code> is <code>F</code> and
-       there are values listed for <code>&lt;elemMinValue&gt;</code>
-       and <code>&lt;elemMaxValue&gt;</code>.
-      </p>
-
-      <p>An example of a ranged profile element might be:</p>
-      <table>
-       <tbody>
-         <tr><td>Name:</td><td>temperature</td></tr>
-         <tr><td>Description:</td><td>Temperatures measured using
-         oral, medical-use, alcohol-based thermometer.</td></tr>
-         <tr><td>Type:</td><td>real</td></tr>
-         <tr><td>Unit:</td><td>kelvin</td></tr>
-         <tr><td>Enumeration flag:</td><td>false</td></tr>
-         <tr><td>Min value:</td><td>282.31</td></tr>
-         <tr><td>Max value:</td><td>301.45</td></tr>
-       </tbody>
-      </table>
-
-      <p>When you're generating a profile (or querying a similar
-       metadata model) with a ranged element, queries should match if
-       the sought value occurs within the given, inclusive range.  If
-       it's a negative query, then it should match if the sought
-       value <em>doesn't</em> occur within the range.
-      </p>
-
-      <p>Here's an example.  Suppose you have a ranged profile element
-       called <code>lumens</code> and its minimum value is 10 and its
-       maximum value is 20.  Here's a table that shows queries and
-       whether they match:
-      </p>
-
-      <table>
-       <thead>
-         <tr><th>Query</th><th>Match?</th></tr>
-       </thead>
-       <tbody>
-         <tr><td>lumens = 12</td><td>Yes, since 12 is between 10 and 
20</td></tr>
-         <tr><td>lumens = 45</td><td>No, since 45 is above 20</td></tr>
-         <tr><td>lumens != 12</td><td>Yes, since there are <em>other 
values</em> in the range 10..20 that match, such as 13, 14, 12.1, etc.</td></tr>
-         <tr><td>lumens != 45</td><td>Yes, since are an infinite number of 
values in the range 10..22 that are not 45</td></tr>
-         <tr><td>lumens != 10</td><td>Yes</td></tr>
-         <tr><td>lumens &lt; 45</td><td>Yes</td></tr>
-         <tr><td>lumens &gt; 15</td><td>Yes</td></tr>
-         <tr><td>lumens &gt; 35</td><td>No; the highest lumen value is 
20</td></tr>
-         <tr><td>lumens LIKE 12</td><td>Maybe</td></tr>
-       </tbody>
-      </table>
-
-      <p>The "LIKE" relational operator defined by the XMLQuery query
-       langauge was meant for string comparisons, yet there's nothing
-       in the software that prevents it from being presented for
-       ranged queries.  The choice of whether to match it is up to you.
-      </p>
-    </section>
-
-    <section name="Queries Against Enumerated Values">
-      <p>Enumerated profile elements are those that describe an
-       attribute of a resource's composition in terms of a discrete
-       list of valid values.  In the Java implementation, there's a
-       subclass of <code>ProfileElement</code> to represent such
-       ranges: <code>EnumeratedProfileElement</code>.  In the XML
-       representation, the <code>&lt;elemEnumFlag&gt;</code> is
-       <code>T</code> and there are one or more
-       <code>&lt;elemValue&gt;</code> elements.
-      </p>
-
-      <p>An example of an enumerated profile element might be:</p>
-      <table>
-       <tbody>
-         <tr><td>Name:</td><td>zone</td></tr>
-         <tr><td>Description:</td><td>City Planning Commission zoning code for 
permitted land use.</td></tr>
-         <tr><td>Type:</td><td>string</td></tr>
-         <tr><td>Unit:</td><td>code</td></tr>
-         <tr><td>Enumeration flag:</td><td>true</td></tr>
-         <tr><td>Value:</td><td>A</td></tr>
-         <tr><td>Value:</td><td>B1</td></tr>
-         <tr><td>Value:</td><td>B2</td></tr>
-         <tr><td>Value:</td><td>B4</td></tr>
-         <tr><td>Value:</td><td>C</td></tr>
-         <tr><td>Value:</td><td>H</td></tr>
-         <tr><td>Value:</td><td>PDD</td></tr>
-         <tr><td>Value:</td><td>R2</td></tr>
-         <tr><td>Value:</td><td>R3</td></tr>
-         <tr><td>Value:</td><td>R4</td></tr>
-         <tr><td>Value:</td><td>R5</td></tr>
-       </tbody>
-      </table>
-
-      <p>When you're generating a profile (or querying a similar
-       metadata model) with an enumerated element, queries should
-       match if the sought value appears as one of the listed
-       elements.
-      </p>
-
-      <p>Here's an example.  Suppose you have an profile element
-       called <code>planet</code> that has as valid values
-       <code>Mercury</code>, <code>Venus</code>, <code>Earth</code>,
-       and <code>Mars</code>.  Here's a table that shows queries and
-       whether they match:
-      </p>
-
-      <table>
-       <thead>
-         <tr><th>Query</th><th>Match?</th></tr>
-       </thead>
-       <tbody>
-         <tr><td>planet = Mercury</td><td>Yes</td></tr>
-         <tr><td>planet = Jupiter</td><td>No</td></tr>
-         <tr><td>planet != Mercury</td><td>Yes since Earth, Venus, and Mars 
are all not Mercury</td></tr>
-         <tr><td>planet != Jupiter</td><td>Yes since there are 4 planets which 
are all not Jupiter</td></tr>
-         <tr><td>planet &lt; Earth</td><td>Maybe</td></tr>
-         <tr><td>planet LIKE %E%</td><td>Yes, since all four planets have an E 
in them (without regard to case)</td></tr>
-         <tr><td>planet NOTLIKE %E%</td><td>No, since all four planets have an 
E in them</td></tr>
-       </tbody>
-      </table>
-
-      <p>Relational ordering is not specified by the profile model, so whether
-       a query like <code>planet &lt; Earth</code> matches is up to you.
-      </p>
-    </section>
-
-    <section name="Querying Against Unspecified Values">
-      <p>An unspecific profile element indicates only the
-       <em>presence</em> of an attribute in the composition of a
-       resource, and nothing else.  In the Java implementation,
-       there's a subclass of <code>ProfileElement</code> to represent
-       this, <code>UnspecifiedProfileElement</code>.  In the XML
-       representation, the <code>&lt;elemEnumFlag&gt;</code> is
-       <code>T</code> and there are zero
-       <code>&lt;elemValue&gt;</code> elements.
-      </p>
-
-      <p>Unspecified profile elements can be useful where you have
-       profiles not describing single resources, but entire
-       collections of resources.  For example, you may have ranged
-       profile elements called <code>temperature</code> for each
-       temperature resource.  But if there are a billion resources,
-       then determining the minimum and maximum temperature for the
-       profile of the entire collection might be painful, in which
-       case you can say that the collection has a
-       <code>temperature</code> attribute by using an unspecified
-       profile for the element for the collection.
-      </p>
-
-      <p>Queries against unspecified elements always match, regardless
-       what the query is.
-      </p>
-    </section>
-  </body>
-</document>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/site/xdoc/rep/index.xml
----------------------------------------------------------------------
diff --git a/profile/src/site/xdoc/rep/index.xml 
b/profile/src/site/xdoc/rep/index.xml
deleted file mode 100755
index 11c5d3e..0000000
--- a/profile/src/site/xdoc/rep/index.xml
+++ /dev/null
@@ -1,334 +0,0 @@
-<?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>Representation of Profiles</title>
-    <author email="[email protected]">Sean Kelly</author>
-  </properties>
-
-  <body>
-    <section name="Representation of Profiles">
-      <p>Within the OODT Framework, profiles are represented as RDF
-       documents, XML documents, or Java objects. The Java Profile
-       class can yield itself as an RDF or XML document, and you can
-       construct a Java Profile from an XML document that describes a
-       profile.
-      </p>
-    </section>
-
-    <section name="Introduction">
-      <p>No matter what their origin or whether they're to be short
-       lived, profiles have a physical representation at one time
-       within the OODT framework.  Typically, you'll use the Java class
-       <code>Profile</code> when working with Java, or the
-       RDF or XML document version when working in other environments.
-       The RDF representation uses the RDF XML structure and RDF schema
-       to describe profiles.  The XML document version uses an
-       OODT-specific XML vocabulary and DTD.
-      </p>
-
-      <p><em>For C/C++ Users:</em> There is not yet a C/C++ representation of 
a profile.
-       Use the RDF or XML representation.
-      </p>
-
-      <p><em>Note:</em>The RDF representation is currently a work-in-progress.
-      </p>
-
-      <p>If you're developing a new kind of profile server, you
-       should become familiar with the Java
-       <code>Profile</code> class.  If you're searching for
-       profiles, you can just use the RDF or XML representations.
-      </p>
-    </section>
-
-    <section name="XML Profiles">
-      <p>Profiles can be represented as XML documents that conform to
-       the OODT Profile Document Type Definition (DTD).  The Formal
-       Public Identifier of the OODT Profile DTD is <code>-//JPL//DTD
-       Profile 1.0//EN</code>.  The normative System Identifier is
-       <a>http://oodt.jpl.nasa.gov/grid-profile/dtd/prof.dtd</a>.
-      </p>
-
-      <p>Although you should refer to the normative System
-       Identifier for the latest reference version, see the following:
-      </p>
-
-      <source><![CDATA[<!ELEMENT profiles
-  (profile*)>
-
-<!ELEMENT profile
-  (profAttributes,
-   resAttributes,
-   profElement*)>
-
-    <!ELEMENT profAttributes
-      (profId, profVersion?, profType,
-       profStatusId, profSecurityType?, profParentId?, profChildId*,
-       profRegAuthority?, profRevisionNote*)>
-
-    <!ELEMENT resAttributes
-      (Identifier, Title?, Format*, Description?, Creator*, Subject*,
-       Publisher*, Contributor*, Date*, Type*, Source*,
-       Language*, Relation*, Coverage*, Rights*,
-       resContext+, resAggregation?, resClass, resLocation*)>
-
-    <!ELEMENT profElement
-      (elemId?, elemName, elemDesc?, elemType?, elemUnit?, 
-       elemEnumFlag, (elemValue* | (elemMinValue, elemMaxValue)),
-       elemSynonym*,
-       elemObligation?, elemMaxOccurrence?, elemComment?)>
-
-    <!ELEMENT profId (#PCDATA)>
-    <!ELEMENT profVersion (#PCDATA)>
-    <!ELEMENT profType (#PCDATA)>
-    <!ELEMENT profParentId (#PCDATA)>
-    <!ELEMENT profChildId (#PCDATA)>
-    <!ELEMENT profStatusId (#PCDATA)>
-    <!ELEMENT profSecurityType (#PCDATA)>
-    <!ELEMENT profRegAuthority (#PCDATA)>
-    <!ELEMENT profRevisionNote (#PCDATA)>
-
-    <!ELEMENT Identifier (#PCDATA)>
-    <!ELEMENT Title (#PCDATA)>
-    <!ELEMENT Format (#PCDATA)>
-    <!ELEMENT Description (#PCDATA)>
-    <!ELEMENT Creator (#PCDATA)>
-    <!ELEMENT Subject (#PCDATA)>
-    <!ELEMENT Publisher (#PCDATA)>
-    <!ELEMENT Contributor (#PCDATA)>
-    <!ELEMENT Date (#PCDATA)>
-    <!ELEMENT Type (#PCDATA)>
-    <!ELEMENT Source (#PCDATA)>
-    <!ELEMENT Language (#PCDATA)>
-    <!ELEMENT Relation (#PCDATA)>
-    <!ELEMENT Coverage (#PCDATA)>
-    <!ELEMENT Rights (#PCDATA)>
-    <!ELEMENT resContext (#PCDATA)>
-    <!ELEMENT resAggregation (#PCDATA)>
-    <!ELEMENT resClass (#PCDATA)>
-    <!ELEMENT resLocation (#PCDATA)>
-
-    <!ELEMENT elemId (#PCDATA)>
-    <!ELEMENT elemName (#PCDATA)>
-    <!ELEMENT elemType (#PCDATA)>
-    <!ELEMENT elemEnumFlag (#PCDATA)>
-    <!ELEMENT elemDesc (#PCDATA)>
-    <!ELEMENT elemSynonym (#PCDATA)>
-    <!ELEMENT elemUnit (#PCDATA)>
-    <!ELEMENT elemValue (#PCDATA)>     
-    <!ELEMENT elemMinValue (#PCDATA)>  
-    <!ELEMENT elemMaxValue (#PCDATA)>  
-    <!ELEMENT elemObligation (#PCDATA)>
-    <!ELEMENT elemMaxOccurrence (#PCDATA)>
-    <!ELEMENT elemComment (#PCDATA)>]]></source>
-
-
-      <subsection name="Collections of Profiles">
-       <p>As you can see from the above,an
-         XML element, <code>profiles</code> is a
-         container element to hold zero or more profiles.  Use this
-         element where it's necessary to manipulate a collection of
-         profiles without regard to order.
-       </p>
-      </subsection>
-    </section>
-
-    <section name="Java Representation of Profiles">
-      <p>The OODT source code includes a class
-       <code>jpl.eda.profile.Profile</code> for object
-       represenation of a profile.  You can construct a
-       <code>Profile</code> object from an RDF or XML
-       document or create a blank one to populate with metadata
-       later.
-      </p>
-      <p>To construct a new, blank profile, use the no-arguments
-       constructor.  To construct a profile from an RDF or XML
-       document, use the constructor accepting a Resource or a DOM
-       <code>Node</code>, respectively.  The DOM node
-       should be a <code>Element</code> representing the
-       <code>profile</code> element.
-       Alternatively, if your XML document exists as a string, call
-       the constructor taking a single string.
-      </p>
-
-      <subsection name="Accessing Profile Metadata">
-       <p>To access the metadata of a profile, call the methods to
-         retrieve the profile attributes, the resource attributes, or
-         the profile elements.
-       </p>
-
-       <subsection name="Accessing the Profile Attributes">
-         <p>You retrieve the profile attributes by calling
-           <code>getProfileAttributes</code> on a
-           <code>Profile</code>.  This returns an
-           <code>ProfileAttributes</code> object which provides
-           methods to get and set the various attributes.  Setting a
-           value sets it for the <code>Profile</code> to which
-           the <code>ProfileAttributes</code> belongs.
-         </p>
-         
-         <p>A value of <code>null</code> for an optional
-           attribute means the value isn't set.
-         </p>
-       </subsection>
-
-       <subsection name="Accessing the Resource Attributes">
-         <p>You retrieve the resource attributes similarly as for
-           profile attributes, calling
-           <code>getResourceAttributes</code> to yield a
-           <code>ResourceAttributes</code> object.
-         </p>
-         <p>The <code>ResourceAttributes</code> has
-           methods to get and set various attributes.  Note that many
-           of the attributes are multi-valued.  For example, the
-           resource profiled will likely cover several subjects.  In
-         this case, the "get" method,
-         <code>getSubjects</code>, returns a
-         <code>java.util.List</code> of
-         <code>String</code>s.  There is no set method.
-           Instead, you just manipulate the list to add and remove
-           subjects.
-         </p>
-
-         <p><em>Note:</em> All of the "get" functions that return
-           <code>List</code>s return lists of
-           <code>String</code>s, except for
-           <code>getDates</code>, which returns a list of
-           <code>java.util.Date</code>s.
-         </p>
-
-         <p>For other attributes which are singly valued, there is
-           both a set and get method.  For optional values, a value of
-           <code>null</code> means the attribute isn't set.
-         </p>
-       </subsection>
-
-       <subsection name="Accessing the Profile Elements">
-         <p>The profile stores its profile elements in a
-           <code>java.util.Map</code>, mapping the name of
-           the profile element (as a <code>String</code>) to
-           an object of class <code>ProfileElement</code>.
-           To access this map, call the method
-           <code>getProfileElements</code> on a
-           <code>Profile</code>.  Because this method returns
-           a reference to the <code>Profile</code>'s map, any
-           updates to the map affect the profile immediately.
-         </p>
-
-         <p><em>Caution:</em> Never store anything but
-           <code>String</code>s as keys and
-           <code>ProfileElement</code>s (or objects of its
-           subclasses) as values in a profile element map.  The
-           software will not operate correctly if any other kind of
-           object is stored.
-         </p>
-
-         <subsection name="Common Attributes of Profile Elements">
-           <p>The class
-             <code>jpl.eda.profile.ProfileElement</code>
-             contains the common parts of every profile element, such
-             as its required name, its optional description, and so
-             forth.  Use the value <code>null</code> for any
-             optional attribute that's unset.
-           </p>
-           <p>The <code>ProfileElement</code> stores its
-             synonyms as a <code>java.util.List</code> of
-             <code>String</code>s.  Manipulate the list
-             directly to add or remove synonyms.
-           </p>
-           <p>The <code>ProfileElement</code> class is
-             abstract.  To create new profile elements for a profile,
-             you need to create objects of one of the concrete
-             <code>ProfileElement</code> subclasses:
-           </p>
-
-           <ul>
-             <li><code>EnumeratedProfileElement</code></li>
-             <li><code>RangedProfileElement</code></li>
-             <li><code>UnspecifiedProfileElement</code></li>
-           </ul>
-
-           <p>The following sections detail each kind of profile
-             element.
-           </p>
-         </subsection>
-
-         <subsection name="Elements with Enumerated Values">
-           <p>For profile elements that maintain a specified list of
-             valid values, use the
-             <code>EnumeratedProfileElement</code> class.
-             Objects of this class maintian a
-             <code>java.util.List</code> of values.  You can
-             pass in a list of values when constrcuting the object, or
-             can call the <code>getValues</code> method and
-             manipulate the list directly.
-           </p>
-           <p>Queries that arrive for an enumerated profile
-             element must match one of the listed elements exactly
-             unless it's a negative (not-equal-to) query.  For
-             example, suppose we had an enumerated profile element
-             <code>filter</code> with values
-             <code>infrared</code>, <code>visible</code>,
-             and <code>ultraviolet</code>.  A query asking for
-             a filter equal to infrared should match, as well as a
-             query asking for a filter greater than or equal to
-             infrared.  A query asking for a filter not equal to
-             infrared shouldn't match, while a query asking for a
-             filter not equal to x-ray should match.
-           </p>
-         </subsection>
-
-         <subsection name="Elements with a Range of Values">
-           <p>You can represent profile elements that have a range
-             of valid values with the
-             <code>RangedProfileElement</code> class.
-             Construct this class with the minimum and maximum values,
-             which must be numeric.
-           </p>
-           <p>Use the <code>getMinValue</code> to get the
-             minimum value and <code>getMaxValue</code> to
-             get the maximum value.
-           </p>
-           <p>Querying a profile that uses a range of values
-             considers the range as inclusive.  For example, suppose
-             the ranged profile element
-             <code>temperature</code> has a minimum value of 32
-             and a maximum value of 212.  A query that requests
-             temperatures less than 32 shouldn't match, but less than or
-             equal to 32 should match.
-           </p>
-         </subsection>
-
-         <subsection name="Elements with no Specified Values">
-           <p>For profile elements that you always want to match a
-             query without explicitly listing each valid value or a
-             range of legal numeric values you can use the class
-             <code>UnspecifiedProfileElement</code>.  This
-             class identifies an element with no range or list of
-             valid values.
-           </p>
-           <p>Queries that arrive at such an element will
-             <span class="emphasis"><em>always</em></span> match, even if 
they're
-             negative (not-equal-to) queries.
-           </p>
-         </subsection>
-       </subsection>
-      </subsection>
-    </section>
-  </body>
-</document>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/test/java/org/apache/oodt/profile/EnumeratedProfileElementTest.java
----------------------------------------------------------------------
diff --git 
a/profile/src/test/java/org/apache/oodt/profile/EnumeratedProfileElementTest.java
 
b/profile/src/test/java/org/apache/oodt/profile/EnumeratedProfileElementTest.java
deleted file mode 100644
index d8defac..0000000
--- 
a/profile/src/test/java/org/apache/oodt/profile/EnumeratedProfileElementTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE 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.
- */
-
-
-package org.apache.oodt.profile;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.xml.sax.SAXException;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import org.apache.oodt.commons.io.NullOutputStream;
-import org.apache.oodt.commons.util.XML;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Unit test the {@link EnumeratedProfileElement} class.
- *
- * @author Kelly
- */ 
-public class EnumeratedProfileElementTest extends ProfileElementTestCase {
-       /**
-        * Construct the test case for the {@link EnumeratedProfileElement} 
class.
-        */
-       public EnumeratedProfileElementTest(String name) {
-               super(name);
-       }
-
-       protected ProfileElement createProfileElement() {
-               return new EnumeratedProfileElement(ProfileTest.TEST_PROFILE, 
"name", "id", "desc", "type", "unit",
-                       /*synonyms*/ new ArrayList(), /*obligation*/false, 
/*maxOccurrence*/1, "comment", VALUES);
-       }
-
-       public void testIt() {
-               ProfileElement element = createProfileElement();
-               List values = element.getValues();
-               assertEquals(3, values.size());
-               assertEquals("1", values.get(0));
-               assertEquals("2", values.get(1));
-               assertEquals("3", values.get(2));
-       }
-
-       public void testNulls() {
-               try {
-                       EnumeratedProfileElement element = new 
EnumeratedProfileElement(createProfileElement().getProfile(),
-                               "test", "test", "test", "test", "test", 
Collections.EMPTY_LIST, /*obligation*/true, /*maxOccur*/1,
-                               "comment", Collections.singletonList(null));
-                       fail("Null values must not be allowed as values in 
enumerated elements.");
-               } catch (IllegalArgumentException ignored) {}
-       }
-
-       protected void checkEnumFlag(String text) {
-               assertEquals("T", text);
-       }
-
-       protected void checkValue(String text) {
-               assertTrue(VALUES.contains(text));
-       }
-
-       protected void checkMaxValue(String text) {
-               fail("Enumerated profile element shouldn't have a maximum 
value");
-       }
-
-       protected void checkMinValue(String text) {
-               fail("Enumerated profile element shouldn't have a minimum 
value");
-       }
-
-       /**
-        * Test to see if spaces are preserved in XML generation and parsing.
-        *
-        * @throws SAXException if an error occurs.
-        */
-       public void testSpacePreserving() throws SAXException {
-               Profile p = new Profile();
-               ProfileAttributes pa = new ProfileAttributes("1", "1", 
"profile", "active", "1", "1",
-                       /*children*/Collections.EMPTY_LIST, "1", 
/*revNotes*/Collections.EMPTY_LIST);
-               p.setProfileAttributes(pa);
-               ResourceAttributes ra = new ResourceAttributes(p, "id", 
"title", /*formats*/Collections.EMPTY_LIST, "description",
-                       /*creators*/Collections.EMPTY_LIST, 
/*subjects*/Collections.EMPTY_LIST, /*publishers*/Collections.EMPTY_LIST,
-                       /*contributors*/Collections.EMPTY_LIST, 
/*dates*/Collections.EMPTY_LIST, /*types*/Collections.EMPTY_LIST,
-                       /*sources*/Collections.EMPTY_LIST, 
/*languages*/Collections.EMPTY_LIST, /*relations*/Collections.EMPTY_LIST,
-                       /*coverages*/Collections.EMPTY_LIST, 
/*rights*/Collections.EMPTY_LIST, Collections.singletonList("context"),
-                       "granule", "grainy", 
Collections.singletonList("file:/dev/null"));
-               p.setResourceAttributes(ra);
-               EnumeratedProfileElement e = new EnumeratedProfileElement(p, 
"mode", "mode", "Mode", "string", "mode",
-                       /*synonyms*/Collections.EMPTY_LIST, 
/*obligation*/false, /*maxOccurrence*/1, "No comment",
-                       Collections.singletonList("The current\n mode setting\n 
 is set to indent\n\n   a\n\n"
-                               + "    number of increasing\n     times."));
-               p.getProfileElements().put("mode", e);
-
-               Profile q = new Profile(p.toString());
-               e = (EnumeratedProfileElement) 
q.getProfileElements().values().iterator().next();
-               assertEquals("The current\n mode setting\n  is set to 
indent\n\n   a\n\n"
-                       + "    number of increasing\n     times.", 
e.getValues().get(0));
-       }
-
-       public void testXMLSerialization() throws Exception {
-               Profile p = new Profile();
-               EnumeratedProfileElement e = new EnumeratedProfileElement(p);
-               Document doc = XML.createDocument();
-               Node root = e.toXML(doc);
-               TransformerFactory tf = TransformerFactory.newInstance();
-               Transformer t = tf.newTransformer();
-               DOMSource s = new DOMSource(root);
-               StreamResult r = new StreamResult(new NullOutputStream());
-               t.transform(s, r);
-       }
-
-       /** Enumerated values for the test element. */
-       private static final List VALUES = Arrays.asList(new String[]{"1", "2", 
"3"});
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/test/java/org/apache/oodt/profile/ProfileAttributesTest.java
----------------------------------------------------------------------
diff --git 
a/profile/src/test/java/org/apache/oodt/profile/ProfileAttributesTest.java 
b/profile/src/test/java/org/apache/oodt/profile/ProfileAttributesTest.java
deleted file mode 100644
index 04792f0..0000000
--- a/profile/src/test/java/org/apache/oodt/profile/ProfileAttributesTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE 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.
- */
-
-
-package org.apache.oodt.profile;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import org.apache.oodt.commons.io.NullOutputStream;
-import org.apache.oodt.commons.util.XML;
-import junit.framework.TestCase;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Unit test the {@link ProfileAttributes} class.
- *
- * @author Kelly
- */ 
-public class ProfileAttributesTest extends TestCase {
-       /** Construct the test case for the {@link ProfileAttributes} class. */
-       public ProfileAttributesTest(String name) {
-               super(name);
-       }
-
-       public void testNoArgsCtor() {
-               ProfileAttributes blank = new ProfileAttributes();
-               assertEquals("UNKNOWN", blank.getID());
-               assertEquals(0, blank.getChildren().size());
-       }
-
-       public void testCtor() {
-               assertEquals("id", TEST_PROFILE_ATTRIBUTES.getID());
-               assertEquals("version", TEST_PROFILE_ATTRIBUTES.getVersion());
-               assertEquals("type", TEST_PROFILE_ATTRIBUTES.getType());
-               assertEquals("statusID", TEST_PROFILE_ATTRIBUTES.getStatusID());
-               assertEquals("securityType", 
TEST_PROFILE_ATTRIBUTES.getSecurityType());
-               assertEquals("parent", TEST_PROFILE_ATTRIBUTES.getParent());
-               assertEquals(2, TEST_PROFILE_ATTRIBUTES.getChildren().size());
-               assertEquals("child1", 
TEST_PROFILE_ATTRIBUTES.getChildren().get(0));
-               assertEquals("child2", 
TEST_PROFILE_ATTRIBUTES.getChildren().get(1));
-               assertEquals("regAuthority", 
TEST_PROFILE_ATTRIBUTES.getRegAuthority());
-               assertEquals(2, 
TEST_PROFILE_ATTRIBUTES.getRevisionNotes().size());
-               assertEquals("note1", 
TEST_PROFILE_ATTRIBUTES.getRevisionNotes().get(0));
-               assertEquals("note2", 
TEST_PROFILE_ATTRIBUTES.getRevisionNotes().get(1));
-       }               
-
-       public void testObjectMethods() {
-               ProfileAttributes q1 = new ProfileAttributes("1", "2", "3", 
"4", "5", "6", Collections.EMPTY_LIST, "7",
-                       Collections.EMPTY_LIST);
-               ProfileAttributes q2 = new ProfileAttributes("1", "2", "3", 
"4", "5", "6", Collections.EMPTY_LIST, "7",
-                       Collections.EMPTY_LIST);
-               ProfileAttributes q3 = new ProfileAttributes("2", "3", "4", 
"5", "6", "7", Collections.EMPTY_LIST, "8",
-                       Collections.EMPTY_LIST);
-               assertEquals(q1, q1);
-               assertEquals(q1, q2);
-               assertTrue(!q1.equals(q3));
-               ProfileAttributes q4 = (ProfileAttributes) q3.clone();
-               assertEquals(q3, q4);
-               assertTrue(q3 != q4);
-       }
-
-       public void testSetters() {
-               ProfileAttributes q = (ProfileAttributes) 
TEST_PROFILE_ATTRIBUTES.clone();
-
-               assertEquals("id", q.getID());
-               q.setID("newId");
-               assertEquals("newId", q.getID());
-
-               assertEquals("version", q.getVersion());
-               q.setVersion("newVersion");
-               assertEquals("newVersion", q.getVersion());
-
-               assertEquals("type", q.getType());
-               q.setType("newType");
-               assertEquals("newType", q.getType());
-
-               assertEquals("statusID", q.getStatusID());
-               q.setStatusID("newStatusid");
-               assertEquals("newStatusid", q.getStatusID());
-
-               assertEquals("securityType", q.getSecurityType());
-               q.setSecurityType("newSecuritytype");
-               assertEquals("newSecuritytype", q.getSecurityType());
-
-               assertEquals("regAuthority", q.getRegAuthority());
-               q.setRegAuthority("newRegAuthority");
-               assertEquals("newRegAuthority", q.getRegAuthority());
-       }
-
-       public void testXML() throws Exception {
-               Document doc = XML.createDocument();
-               Node root = TEST_PROFILE_ATTRIBUTES.toXML(doc);
-               assertEquals("profAttributes", root.getNodeName());
-               NodeList children = root.getChildNodes();
-               for (int i = 0; i < children.getLength(); ++i) {
-                       Node child = children.item(i);
-                       String name = child.getNodeName();
-                       if ("profId".equals(name)) {
-                               assertEquals("id", XML.text(child));
-                       } else if ("profVersion".equals(name)) {
-                               assertEquals("version", XML.text(child));
-                       } else if ("profType".equals(name)) {
-                               assertEquals("type", XML.text(child));
-                       } else if ("profStatusId".equals(name)) {
-                               assertEquals("statusID", XML.text(child));
-                       } else if ("profSecurityType".equals(name)) {
-                               assertEquals("securityType", XML.text(child));
-                       } else if ("profParentId".equals(name)) {
-                               assertEquals("parent", XML.text(child));
-                       } else if ("profChildId".equals(name)) {
-                         // ignore, list serialization tested in XMLTest
-                       } else if ("profRegAuthority".equals(name)) {
-                               assertEquals("regAuthority", XML.text(child));
-                       } else if ("profRevisionNote".equals(name)) {
-                         // ignore, list serialization tested in XMLTest
-                       } else fail("Unknown node \"" + name + "\" in XML 
result");
-               }
-               ProfileAttributes p = new ProfileAttributes(root);
-               assertEquals(TEST_PROFILE_ATTRIBUTES, p);
-       }
-       
-       public void testXMLSerialization() throws Exception {
-               ProfileAttributes p = new ProfileAttributes();
-               Document doc = XML.createDocument();
-               Node root = p.toXML(doc);
-               TransformerFactory tf = TransformerFactory.newInstance();
-               Transformer t = tf.newTransformer();
-               DOMSource s = new DOMSource(root);
-               StreamResult r = new StreamResult(new NullOutputStream());
-               t.transform(s, r);
-       }
-
-       static final ProfileAttributes TEST_PROFILE_ATTRIBUTES;
-
-       static {
-               List parents = Collections.singletonList("parent");
-               List children = new ArrayList();
-               children.add("child1");
-               children.add("child2");
-               List revisionNotes = new ArrayList();
-               revisionNotes.add("note1");
-               revisionNotes.add("note2");
-               TEST_PROFILE_ATTRIBUTES = new ProfileAttributes("id", 
"version", "type", "statusID",
-                       "securityType", "parent", children, "regAuthority", 
revisionNotes);
-       }
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/test/java/org/apache/oodt/profile/ProfileElementTestCase.java
----------------------------------------------------------------------
diff --git 
a/profile/src/test/java/org/apache/oodt/profile/ProfileElementTestCase.java 
b/profile/src/test/java/org/apache/oodt/profile/ProfileElementTestCase.java
deleted file mode 100644
index 6a54635..0000000
--- a/profile/src/test/java/org/apache/oodt/profile/ProfileElementTestCase.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE 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.
- */
-
-
-package org.apache.oodt.profile;
-
-import junit.framework.TestCase;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.apache.oodt.commons.util.XML;
-
-/**
- * Test case for profile elements.
- *
- * @author Kelly
- */ 
-public abstract class ProfileElementTestCase extends TestCase {
-       /** Construct the test case for the {@link ProfileElement} superclass. 
*/
-       public ProfileElementTestCase(String name) {
-               super(name);
-       }
-
-       /**
-        * Create a profile element object to test.
-        *
-        * The element returned must have as its owning profile the
-        * <code>ProfileTest.TEST_PROFILE</code>, be named "name", have "id" as 
its ID,
-        * have "desc" as its description, must be of type "type", have "unit" 
units, have
-        * no synonyms, not be obligatory, may occur once, and have "comment" 
as its
-        * comment.
-        *
-        * @return A profile element.
-        */
-       protected abstract ProfileElement createProfileElement();
-
-       /**
-        * Check if the given enumeration flag is valid.
-        *
-        * This method merely asserts that it's valid for the profile element 
in question.
-        *
-        * @param text Text to check.
-        */
-       protected abstract void checkEnumFlag(String text);
-
-       /**
-        * Check that the given value is valid.
-        *
-        * This method merely asserts that it's valid for the profile element 
in question.
-        *
-        * @param text Text to check.
-        */
-       protected abstract void checkValue(String text);
-
-       /**
-        * Check that the given maximum value is valid.
-        *
-        * This method merely asserts that it's valid for the profile element 
in question.
-        *
-        * @param text Text to check.
-        */
-       protected abstract void checkMaxValue(String text);
-
-       /**
-        * Check that the given minimum value is valid.
-        *
-        * This method merely asserts that it's valid for the profile element 
in question.
-        *
-        * @param text Text to check.
-        */
-       protected abstract void checkMinValue(String text);
-
-       public void testCharacteristics() {
-               ProfileElement element = createProfileElement();
-               assertEquals(ProfileTest.TEST_PROFILE, element.getProfile());
-
-               assertEquals("name", element.getName());
-               element.setName("newName");
-               assertEquals("newName", element.getName());
-
-               assertEquals("id", element.getID());
-               element.setID("newID");
-               assertEquals("newID", element.getID());
-
-               assertEquals("desc", element.getDescription());
-               element.setDescription("newDesc");
-               assertEquals("newDesc", element.getDescription());
-
-               assertEquals("type", element.getType());
-               element.setType("newType");
-               assertEquals("newType", element.getType());
-
-               assertEquals("unit", element.getUnit());
-               element.setUnit("newUnit");
-               assertEquals("newUnit", element.getUnit());
-
-               assertEquals(0, element.getSynonyms().size());
-               element.getSynonyms().add("synonym");
-               assertEquals(1, element.getSynonyms().size());
-               assertEquals("synonym", element.getSynonyms().get(0));
-
-               assertTrue(!element.isObligatory());
-               element.setObligation(true);
-               assertTrue(element.isObligatory());
-
-               assertEquals(1, element.getMaxOccurrence());
-               element.setMaxOccurrence(2);
-               assertEquals(2, element.getMaxOccurrence());
-
-               assertEquals("comment", element.getComments());
-               element.setComments("newComment");
-               assertEquals("newComment", element.getComments());
-       }
-
-       public void testObjectMethods() {
-               ProfileElement elem1 = createProfileElement();
-               ProfileElement elem2 = createProfileElement();
-               ProfileElement elem3 = createProfileElement();
-               elem3.setName("newName");
-               assertEquals(elem1, elem1);
-               assertEquals(elem1, elem2);
-               assertTrue(!elem1.equals(elem3));
-               ProfileElement elem4 = (ProfileElement) elem3.clone();
-               assertEquals(elem3, elem4);
-               assertTrue(elem3 != elem4);
-       }
-
-       public void testXML() {
-               ProfileElement element = createProfileElement();
-               Document doc = XML.createDocument();
-               Node root = element.toXML(doc);
-               assertEquals("profElement", root.getNodeName());
-               NodeList children = root.getChildNodes();
-               boolean foundName = false;
-               boolean foundEnumFlag = false;
-               for (int i = 0; i < children.getLength(); ++i) {
-                       Node child = children.item(i);
-                       String name = child.getNodeName();
-                       String text = ProfileElement.text(child);
-                       if ("elemId".equals(name)) {
-                               assertEquals("id", text);
-                       } else if ("elemName".equals(name)) {
-                               assertEquals("name", text);
-                               foundName = true;
-                       } else if ("elemDesc".equals(name)) {
-                               assertEquals("desc", text);
-                       } else if ("elemType".equals(name)) {
-                               assertEquals("type", text);
-                       } else if ("elemUnit".equals(name)) {
-                               assertEquals("unit", text);
-                       } else if ("elemEnumFlag".equals(name)) {
-                               checkEnumFlag(text);
-                               foundEnumFlag = true;
-                       } else if ("elemValue".equals(name)) {
-                               checkValue(text);
-                       } else if ("elemMinValue".equals(name)) {
-                               checkMinValue(text);
-                       } else if ("elemMaxValue".equals(name)) {
-                               checkMaxValue(text);
-                       } else if ("elemSynonym".equals(name)) {
-                         // ignore
-                       } else if ("elemObligation".equals(name)) {
-                               assertEquals("Optional", text);
-                       } else if ("elemMaxOccurrence".equals(name)) {
-                               assertEquals("1", text);
-                       } else if ("elemComment".equals(name)) {
-                               assertEquals("comment", text);
-                       } else fail("Unknown node <" + name + "> under 
<profElement>");
-               }
-               assertTrue("Required <elemName> missing", foundName);
-               assertTrue("Required <elemEnumFlag> missing", foundEnumFlag);
-       }
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/test/java/org/apache/oodt/profile/ProfileTest.java
----------------------------------------------------------------------
diff --git a/profile/src/test/java/org/apache/oodt/profile/ProfileTest.java 
b/profile/src/test/java/org/apache/oodt/profile/ProfileTest.java
deleted file mode 100644
index c6061b5..0000000
--- a/profile/src/test/java/org/apache/oodt/profile/ProfileTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE 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.
- */
-
-
-package org.apache.oodt.profile;
-
-import org.apache.oodt.commons.util.XML;
-import org.w3c.dom.Document;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-/**
- * Unit test the Profile class.
- *
- * @author Kelly
- */ 
-public class ProfileTest extends TestCase {
-       /** Construct the test case for the Profile class. */
-       public ProfileTest(String name) {
-               super(name);
-       }
-
-       protected void setUp() throws Exception {
-               super.setUp();
-               oldProfNS = System.getProperty("jpl.rdf.ns");
-               System.setProperty("jpl.rdf.ns", 
"http://enterprise.jpl.nasa.gov/rdfs/prof.rdf#";);
-
-               StringBuilder buffer = new StringBuilder("<?xml version=\"1.0\" 
encoding=\"UTF-8\"?>\n");
-               buffer.append("<!DOCTYPE profile PUBLIC 
\"").append(Profile.PROFILES_DTD_FPI).append("\" \"")
-                       .append(Profile.PROFILES_DTD_URL).append("\">\n");
-               BufferedReader reader = new BufferedReader(new 
InputStreamReader(getClass().getResourceAsStream("test.xml")));
-               String line;
-               while ((line = reader.readLine()) != null) {
-                       buffer.append(line);
-                       buffer.append('\n');
-               }
-               reader.close();
-               Document doc = XML.parse(buffer.toString());
-               profile1 = new Profile(buffer.toString());
-               profile2 = new Profile(doc.getDocumentElement());
-       }
-
-       protected void tearDown() throws Exception {
-               if (oldProfNS != null)
-                       System.setProperty("jpl.rdf.ns", oldProfNS);
-               else
-                       System.getProperties().remove("jpl.rdf.ns");
-       }
-
-       public void testQueries() {
-               // We test both profile1 (built from a string) and profile2 
(from an XML
-               // document node); they should yield the same results because 
they
-               // represent the same document.
-
-               // Test the getResourceAttribute method.
-               assertEquals("PDS_PROFILE_SERVER", 
profile1.getResourceAttributes().getIdentifier());
-               assertEquals("PDS_PROFILE_SERVER", 
profile2.getResourceAttributes().getIdentifier());
-               assertEquals("text/html", 
profile1.getResourceAttributes().getFormats().get(0));
-               assertEquals("text/html", 
profile2.getResourceAttributes().getFormats().get(0));
-
-               // Test the getProfileID method.
-               assertEquals("OODT_PDS_PROFILE_SERVER", 
profile1.getProfileAttributes().getID());
-               assertEquals("OODT_PDS_PROFILE_SERVER", 
profile2.getProfileAttributes().getID());
-
-               // Test the getProfileAttribute method
-               assertEquals("profile", 
profile1.getProfileAttributes().getType());
-               assertEquals("profile", 
profile2.getProfileAttributes().getType());
-               assertEquals("NULL", 
profile1.getProfileAttributes().getSecurityType());
-               assertEquals("NULL", 
profile2.getProfileAttributes().getSecurityType());
-
-               // Test the getProfileElementItem method.
-               Map elements1 = profile1.getProfileElements();
-               Map elements2 = profile2.getProfileElements();
-               assertEquals(3, elements1.size());
-               assertEquals(3, elements2.size());
-               assertTrue(elements1.containsKey("TEST"));
-               assertTrue(elements2.containsKey("TEST"));
-               assertTrue(!elements1.containsKey("does-not-exist"));
-               assertTrue(!elements2.containsKey("does-not-exist"));
-               ProfileElement element1 = (ProfileElement) 
elements1.get("TEST2");
-               ProfileElement element2 = (ProfileElement) 
elements2.get("TEST2");
-               assertEquals("Testing", element1.getType());
-               assertEquals("Testing", element2.getType());
-
-               // Test the toString and getProfileString methods ... NB: this 
test should
-               // actually check value, not just see if they're equal.
-               assertEquals(profile1.toString(), profile2.toString());
-
-               // Test some miscellaneous query methods
-               assertEquals("Planetary Data System (PDS) - Profile Server 
V1.0", profile1.getResourceAttributes().getTitle());
-               assertEquals("iiop://oodt.jpl.nasa.gov:10000/JPL.PDS.PROFILE", 
profile1.getResourceAttributes().getResLocations()
-                       .get(0));
-               assertEquals("system.profileServer", 
profile1.getResourceAttributes().getResClass());
-               assertEquals("Planetary Data System (PDS) - Profile Server 
V1.0", profile2.getResourceAttributes().getTitle());
-               assertEquals("iiop://oodt.jpl.nasa.gov:10000/JPL.PDS.PROFILE", 
profile2.getResourceAttributes().getResLocations()
-                       .get(0));
-               assertEquals("system.profileServer", 
profile2.getResourceAttributes().getResClass());
-       }
-
-       /** A test profile, built from a string. */
-       private Profile profile1;
-
-       /** Another test profile, built from an XML document node. */
-       private Profile profile2;
-
-       /** Previous value of the JPL RDF namespace in the system properties. */
-       private String oldProfNS;
-
-       /** Another (static) test profile, for use by other test cases. */
-       static Profile TEST_PROFILE = new 
Profile(org.apache.oodt.profile.ProfileAttributesTest.TEST_PROFILE_ATTRIBUTES,
-               
org.apache.oodt.profile.ResourceAttributesTest.TEST_RESOURCE_ATTRIBUTES);
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/profile/src/test/java/org/apache/oodt/profile/RangedProfileElementTest.java
----------------------------------------------------------------------
diff --git 
a/profile/src/test/java/org/apache/oodt/profile/RangedProfileElementTest.java 
b/profile/src/test/java/org/apache/oodt/profile/RangedProfileElementTest.java
deleted file mode 100644
index 7fe75cf..0000000
--- 
a/profile/src/test/java/org/apache/oodt/profile/RangedProfileElementTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE 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.
- */
-
-
-package org.apache.oodt.profile;
-
-import java.util.ArrayList;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import org.apache.oodt.commons.io.NullOutputStream;
-import org.apache.oodt.commons.util.XML;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Unit test the {@link RangedProfileElement} class.
- *
- * @author Kelly
- */ 
-public class RangedProfileElementTest extends ProfileElementTestCase {
-       /** Construct the test case for the {@link RangedProfileElement} class. 
*/
-       public RangedProfileElementTest(String name) {
-               super(name);
-       }
-
-       protected ProfileElement createProfileElement() {
-               return new RangedProfileElement(ProfileTest.TEST_PROFILE, 
"name", "id", "desc", "type", "unit",
-                       /*synonyms*/ new ArrayList(), /*obligation*/false, 
/*maxOccurrence*/1, "comment", /*min*/"-100.0",
-                       /*max*/"100.0");
-       }
-
-       public void testIt() {
-               ProfileElement element = createProfileElement();
-               assertEquals("100.0", element.getMaxValue());
-               assertEquals("-100.0", element.getMinValue());
-               assertEquals(0, element.getValues().size());
-       }
-       
-       public void testXMLSerialization() throws Exception {
-               Profile p = new Profile();
-               RangedProfileElement e = new RangedProfileElement(p);
-               Document doc = XML.createDocument();
-               Node root = e.toXML(doc);
-               TransformerFactory tf = TransformerFactory.newInstance();
-               Transformer t = tf.newTransformer();
-               DOMSource s = new DOMSource(root);
-               StreamResult r = new StreamResult(new NullOutputStream());
-               t.transform(s, r);
-       }
-
-       protected void checkEnumFlag(String text) {
-               assertEquals("F", text);
-       }
-
-       protected void checkValue(String text) {
-               fail("Ranged profile element shouldn't have an enumerated 
value");
-       }
-
-       protected void checkMaxValue(String text) {
-               assertEquals("100.0", text);
-       }
-
-       protected void checkMinValue(String text) {
-               assertEquals("-100.0", text);
-       }
-}

Reply via email to