From: <fxp...@us...> - 2009-06-24 17:47:22
|
Revision: 4448 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=4448&view=rev Author: fxprunayre Date: 2009-06-24 17:47:20 +0000 (Wed, 24 Jun 2009) Log Message: ----------- Added draft CSW service tests. Modified Paths: -------------- trunk/test/src/org/fao/geonet/services/AllTests.java trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-add.xml trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-active.xml trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-inactive.xml trunk/test/src/org/fao/geonet/services/harvesting/harvester-invoke.xml trunk/test/src/org/fao/geonet/services/harvesting/harvester-remove.xml trunk/test/src/org/fao/geonet/services/harvesting/harvester-run-inactive.xml trunk/test/src/org/fao/geonet/services/harvesting/harvester-run.xml trunk/test/src/org/fao/geonet/services/harvesting/harvester-start.xml trunk/test/src/org/fao/geonet/services/harvesting/harvester-stop.xml Added Paths: ----------- trunk/test/src/org/fao/geonet/services/main/ trunk/test/src/org/fao/geonet/services/main/CswTest.java trunk/test/src/org/fao/geonet/services/main/gn-csw-DescribeRecord.xml trunk/test/src/org/fao/geonet/services/main/gn-csw-GetCapabilities.xml trunk/test/src/org/fao/geonet/services/main/gn-csw-GetRecords.xml Modified: trunk/test/src/org/fao/geonet/services/AllTests.java =================================================================== --- trunk/test/src/org/fao/geonet/services/AllTests.java 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/AllTests.java 2009-06-24 17:47:20 UTC (rev 4448) @@ -2,8 +2,9 @@ import junit.framework.Test; import junit.framework.TestSuite; + import org.fao.geonet.services.harvesting.HarvestTest; -import org.fao.geonet.services.metadata.MetaDataTest; +import org.fao.geonet.services.main.CswTest; import org.fao.geonet.test.SuiteRunner; /** @@ -25,6 +26,7 @@ // Create the test suite using Class objects TestSuite suite = new TestSuite("Service Tests"); suite.addTestSuite(HarvestTest.class); + suite.addTestSuite(CswTest.class); // suite.addTestSuite(MetaDataTest.class); return suite; } Modified: trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-add.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-add.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-add.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.add"> + <request url="/en/xml.harvesting.add"> <params type="geonetwork"> <site> <name>${name}</name> Modified: trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-active.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-active.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-active.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.get"> + <request url="/en/xml.harvesting.get"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-inactive.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-inactive.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/gn-harvester-get-inactive.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.get"> + <request url="/en/xml.harvesting.get"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/harvester-invoke.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/harvester-invoke.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/harvester-invoke.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.invoke"> + <request url="/en/xml.harvesting.invoke"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/harvester-remove.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/harvester-remove.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/harvester-remove.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.remove"> + <request url="/en/xml.harvesting.remove"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/harvester-run-inactive.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/harvester-run-inactive.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/harvester-run-inactive.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.run"> + <request url="/en/xml.harvesting.run"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/harvester-run.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/harvester-run.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/harvester-run.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.run"> + <request url="/en/xml.harvesting.run"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/harvester-start.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/harvester-start.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/harvester-start.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.start"> + <request url="/en/xml.harvesting.start"> <params> <id>${id}</id> </params> Modified: trunk/test/src/org/fao/geonet/services/harvesting/harvester-stop.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/harvesting/harvester-stop.xml 2009-06-24 16:38:35 UTC (rev 4447) +++ trunk/test/src/org/fao/geonet/services/harvesting/harvester-stop.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -1,5 +1,5 @@ <test> - <request url="/eng/xml.harvesting.stop"> + <request url="/en/xml.harvesting.stop"> <params> <id>${id}</id> </params> Added: trunk/test/src/org/fao/geonet/services/main/CswTest.java =================================================================== --- trunk/test/src/org/fao/geonet/services/main/CswTest.java (rev 0) +++ trunk/test/src/org/fao/geonet/services/main/CswTest.java 2009-06-24 17:47:20 UTC (rev 4448) @@ -0,0 +1,22 @@ +package org.fao.geonet.services.main; + +import org.junit.Test; +import org.fao.geonet.test.ProtocolTestCase; + +public class CswTest extends ProtocolTestCase { + +// @Test +// public void testGNCswGetCapabilities() throws Exception { +// doTest("gn-csw-GetCapabilities.xml"); +// } +// +// @Test +// public void testGNCswDescribeRecord() throws Exception { +// doTest("gn-csw-DescribeRecord.xml"); +// } + + @Test + public void testGNCswGetRecords() throws Exception { + doTest("gn-csw-GetRecords.xml"); + } +} Added: trunk/test/src/org/fao/geonet/services/main/gn-csw-DescribeRecord.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/main/gn-csw-DescribeRecord.xml (rev 0) +++ trunk/test/src/org/fao/geonet/services/main/gn-csw-DescribeRecord.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -0,0 +1,440 @@ +<test> + <request url="/en/csw"> + <csw:DescribeRecord xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" version="2.0.2" outputFormat="application/xml" schemaLanguage="http://www.w3.org/XML/Schema"/> + </request> + <response> + <csw:DescribeRecordResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"> + <csw:SchemaComponent targetNamespace="http://www.opengis.net/cat/csw/2.0.2" schemaLanguage="http://www.w3.org/XML/Schema"> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:ows="http://www.opengis.net/ows" id="csw-record" targetNamespace="http://www.opengis.net/cat/csw/2.0.2" elementFormDefault="qualified" + version="2.0.2"> + <xsd:annotation> + <xsd:appinfo> + <dc:identifier>http://schemas.opengis.net/csw/2.0.2/record.xsd</dc:identifier> + </xsd:appinfo> + <xsd:documentation xml:lang="en">This schema defines the basic record types that must be supported by all CSW implementations. These correspond to full, summary, and brief views based on DCMI metadata terms.</xsd:documentation> + </xsd:annotation> + <xsd:import namespace="http://purl.org/dc/terms/" schemaLocation="rec-dcterms.xsd"/> + <xsd:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="rec-dcmes.xsd"/> + <xsd:import namespace="http://www.opengis.net/ows" schemaLocation="../../ows/1.0.0/owsAll.xsd"/> + <xsd:element name="AbstractRecord" id="AbstractRecord" type="csw:AbstractRecordType" abstract="true"/> + <xsd:complexType name="AbstractRecordType" id="AbstractRecordType" abstract="true"/> + <xsd:element name="DCMIRecord" type="csw:DCMIRecordType" substitutionGroup="csw:AbstractRecord"/> + <xsd:complexType name="DCMIRecordType"> + <xsd:annotation> + <xsd:documentation xml:lang="en">This type encapsulates all of the standard DCMI metadata terms, including the Dublin Core refinements; these terms may be mapped to the profile-specific information model.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="csw:AbstractRecordType"> + <xsd:sequence> + <xsd:group ref="dct:DCMI-terms"/> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <xsd:element name="BriefRecord" type="csw:BriefRecordType" substitutionGroup="csw:AbstractRecord"/> + <xsd:complexType name="BriefRecordType" final="#all"> + <xsd:annotation> + <xsd:documentation xml:lang="en">This type defines a brief representation of the common record format. It extends AbstractRecordType to include only the dc:identifier and dc:type properties.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="csw:AbstractRecordType"> + <xsd:sequence> + <xsd:element ref="dc:identifier" minOccurs="1" maxOccurs="unbounded"/> + <xsd:element ref="dc:title" minOccurs="1" maxOccurs="unbounded"/> + <xsd:element ref="dc:type" minOccurs="0"/> + <xsd:element ref="ows:BoundingBox" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <xsd:element name="SummaryRecord" type="csw:SummaryRecordType" substitutionGroup="csw:AbstractRecord"/> + <xsd:complexType name="SummaryRecordType" final="#all"> + <xsd:annotation> + <xsd:documentation xml:lang="en">This type defines a summary representation of the common record format. It extends AbstractRecordType to include the core properties.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="csw:AbstractRecordType"> + <xsd:sequence> + <xsd:element ref="dc:identifier" minOccurs="1" maxOccurs="unbounded"/> + <xsd:element ref="dc:title" minOccurs="1" maxOccurs="unbounded"/> + <xsd:element ref="dc:type" minOccurs="0"/> + <xsd:element ref="dc:subject" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="dc:format" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="dc:relation" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="dct:modified" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="dct:abstract" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="dct:spatial" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="ows:BoundingBox" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <xsd:element name="Record" type="csw:RecordType" substitutionGroup="csw:AbstractRecord"/> + <xsd:complexType name="RecordType" final="#all"> + <xsd:annotation> + <xsd:documentation xml:lang="en">This type extends DCMIRecordType to add ows:BoundingBox; it may be used to specify a spatial envelope for the catalogued resource.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="csw:DCMIRecordType"> + <xsd:sequence> + <xsd:element name="AnyText" type="csw:EmptyType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element ref="ows:BoundingBox" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="EmptyType"/> + </xsd:schema> + </csw:SchemaComponent> + <csw:SchemaComponent targetNamespace="http://www.opengis.net/cat/csw/2.0.2" schemaLanguage="http://www.w3.org/XML/Schema"> + <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" targetNamespace="http://www.isotc211.org/2005/gmd" elementFormDefault="qualified" version="0.1"> + <!-- ================================= Annotation ================================ --> + <xs:annotation> + <xs:documentation>This file was generated from ISO TC/211 UML class diagrams == 01-26-2005 12:40:05 ======</xs:documentation> + </xs:annotation> + <!-- ================================== Imports ================================== --> + <xs:import namespace="http://www.isotc211.org/2005/gco" schemaLocation="../gco/gco.xsd"/> + <xs:include schemaLocation="../gmd/constraints.xsd"/> + <xs:include schemaLocation="../gmd/distribution.xsd"/> + <xs:include schemaLocation="../gmd/maintenance.xsd"/> + <!-- ########################################################################### --> + <!-- ########################################################################### --> + <!-- ================================== Classes ================================= --> + <xs:complexType name="AbstractMD_Identification_Type" abstract="true"> + <xs:annotation> + <xs:documentation>Basic information about data</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence> + <xs:element name="citation" type="gmd:CI_Citation_PropertyType"/> + <xs:element name="abstract" type="gco:CharacterString_PropertyType"/> + <xs:element name="purpose" type="gco:CharacterString_PropertyType" minOccurs="0"/> + <xs:element name="credit" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="status" type="gmd:MD_ProgressCode_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="pointOfContact" type="gmd:CI_ResponsibleParty_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="resourceMaintenance" type="gmd:MD_MaintenanceInformation_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="graphicOverview" type="gmd:MD_BrowseGraphic_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="resourceFormat" type="gmd:MD_Format_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="descriptiveKeywords" type="gmd:MD_Keywords_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="resourceSpecificUsage" type="gmd:MD_Usage_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="resourceConstraints" type="gmd:MD_Constraints_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="aggregationInfo" type="gmd:MD_AggregateInformation_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="AbstractMD_Identification" type="gmd:AbstractMD_Identification_Type" abstract="true"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_Identification_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:AbstractMD_Identification"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_BrowseGraphic_Type"> + <xs:annotation> + <xs:documentation>Graphic that provides an illustration of the dataset (should include a legend for the graphic)</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence> + <xs:element name="fileName" type="gco:CharacterString_PropertyType"/> + <xs:element name="fileDescription" type="gco:CharacterString_PropertyType" minOccurs="0"/> + <xs:element name="fileType" type="gco:CharacterString_PropertyType" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_BrowseGraphic" type="gmd:MD_BrowseGraphic_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_BrowseGraphic_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_BrowseGraphic"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_DataIdentification_Type"> + <xs:complexContent> + <xs:extension base="gmd:AbstractMD_Identification_Type"> + <xs:sequence> + <xs:element name="spatialRepresentationType" type="gmd:MD_SpatialRepresentationTypeCode_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="spatialResolution" type="gmd:MD_Resolution_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="language" type="gco:CharacterString_PropertyType" maxOccurs="unbounded"/> + <xs:element name="characterSet" type="gmd:MD_CharacterSetCode_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="topicCategory" type="gmd:MD_TopicCategoryCode_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="environmentDescription" type="gco:CharacterString_PropertyType" minOccurs="0"/> + <xs:element name="extent" type="gmd:EX_Extent_PropertyType" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="supplementalInformation" type="gco:CharacterString_PropertyType" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_DataIdentification" type="gmd:MD_DataIdentification_Type" substitutionGroup="gmd:AbstractMD_Identification"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_DataIdentification_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_DataIdentification"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_ServiceIdentification_Type"> + <xs:annotation> + <xs:documentation>See 19119 for further info</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="gmd:AbstractMD_Identification_Type"/> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_ServiceIdentification" type="gmd:MD_ServiceIdentification_Type" substitutionGroup="gmd:AbstractMD_Identification"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_ServiceIdentification_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_ServiceIdentification"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_RepresentativeFraction_Type"> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence> + <xs:element name="denominator" type="gco:Integer_PropertyType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_RepresentativeFraction" type="gmd:MD_RepresentativeFraction_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_RepresentativeFraction_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_RepresentativeFraction"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_Usage_Type"> + <xs:annotation> + <xs:documentation>Brief description of ways in which the dataset is currently used.</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence> + <xs:element name="specificUsage" type="gco:CharacterString_PropertyType"/> + <xs:element name="usageDateTime" type="gco:DateTime_PropertyType" minOccurs="0"/> + <xs:element name="userDeterminedLimitations" type="gco:CharacterString_PropertyType" minOccurs="0"/> + <xs:element name="userContactInfo" type="gmd:CI_ResponsibleParty_PropertyType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_Usage" type="gmd:MD_Usage_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_Usage_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_Usage"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_Keywords_Type"> + <xs:annotation> + <xs:documentation>Keywords, their type and reference source</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence> + <xs:element name="keyword" type="gco:CharacterString_PropertyType" maxOccurs="unbounded"/> + <xs:element name="type" type="gmd:MD_KeywordTypeCode_PropertyType" minOccurs="0"/> + <xs:element name="thesaurusName" type="gmd:CI_Citation_PropertyType" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_Keywords" type="gmd:MD_Keywords_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_Keywords_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_Keywords"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="DS_Association_Type"> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="DS_Association" type="gmd:DS_Association_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="DS_Association_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:DS_Association"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_AggregateInformation_Type"> + <xs:annotation> + <xs:documentation>Encapsulates the dataset aggregation information</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="gco:AbstractObject_Type"> + <xs:sequence> + <xs:element name="aggregateDataSetName" type="gmd:CI_Citation_PropertyType" minOccurs="0"/> + <xs:element name="aggregateDataSetIdentifier" type="gmd:MD_Identifier_PropertyType" minOccurs="0"/> + <xs:element name="associationType" type="gmd:DS_AssociationTypeCode_PropertyType"/> + <xs:element name="initiativeType" type="gmd:DS_InitiativeTypeCode_PropertyType" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_AggregateInformation" type="gmd:MD_AggregateInformation_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_AggregateInformation_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_AggregateInformation"/> + </xs:sequence> + <xs:attributeGroup ref="gco:ObjectReference"/> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:complexType name="MD_Resolution_Type"> + <xs:choice> + <xs:element name="equivalentScale" type="gmd:MD_RepresentativeFraction_PropertyType"/> + <xs:element name="distance" type="gco:Distance_PropertyType"/> + </xs:choice> + </xs:complexType> + <!-- ........................................................................ --> + <xs:element name="MD_Resolution" type="gmd:MD_Resolution_Type"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_Resolution_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_Resolution"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <xs:simpleType name="MD_TopicCategoryCode_Type"> + <xs:annotation> + <xs:documentation>High-level geospatial data thematic classification to assist in the grouping and search of available geospatial datasets</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="farming"/> + <xs:enumeration value="biota"/> + <xs:enumeration value="boundaries"/> + <xs:enumeration value="climatologyMeteorologyAtmosphere"/> + <xs:enumeration value="economy"/> + <xs:enumeration value="elevation"/> + <xs:enumeration value="environment"/> + <xs:enumeration value="geoscientificInformation"/> + <xs:enumeration value="health"/> + <xs:enumeration value="imageryBaseMapsEarthCover"/> + <xs:enumeration value="intelligenceMilitary"/> + <xs:enumeration value="inlandWaters"/> + <xs:enumeration value="location"/> + <xs:enumeration value="oceans"/> + <xs:enumeration value="planningCadastre"/> + <xs:enumeration value="society"/> + <xs:enumeration value="structure"/> + <xs:enumeration value="transportation"/> + <xs:enumeration value="utilitiesCommunication"/> + </xs:restriction> + </xs:simpleType> + <!-- ........................................................................ --> + <xs:element name="MD_TopicCategoryCode" type="gmd:MD_TopicCategoryCode_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_TopicCategoryCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_TopicCategoryCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <!-- ........................................................................ --> + <xs:element name="MD_CharacterSetCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_CharacterSetCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_CharacterSetCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <!-- ........................................................................ --> + <xs:element name="MD_SpatialRepresentationTypeCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_SpatialRepresentationTypeCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_SpatialRepresentationTypeCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <!-- ........................................................................ --> + <xs:element name="MD_ProgressCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_ProgressCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_ProgressCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <!-- ........................................................................ --> + <xs:element name="MD_KeywordTypeCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="MD_KeywordTypeCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:MD_KeywordTypeCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <!-- ........................................................................ --> + <xs:element name="DS_AssociationTypeCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="DS_AssociationTypeCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:DS_AssociationTypeCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + <!-- ........................................................................ --> + <xs:element name="DS_InitiativeTypeCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/> + <!-- ........................................................................ --> + <xs:complexType name="DS_InitiativeTypeCode_PropertyType"> + <xs:sequence minOccurs="0"> + <xs:element ref="gmd:DS_InitiativeTypeCode"/> + </xs:sequence> + <xs:attribute ref="gco:nilReason"/> + </xs:complexType> + <!-- =========================================================================== --> + </xs:schema> + </csw:SchemaComponent> + </csw:DescribeRecordResponse> + </response> +</test> Added: trunk/test/src/org/fao/geonet/services/main/gn-csw-GetCapabilities.xml =================================================================== --- trunk/test/src/org/fao/geonet/services/main/gn-csw-GetCapabilities.xml (rev 0) +++ trunk/test/src/org/fao/geonet/services/main/gn-csw-GetCapabilities.xml 2009-06-24 17:47:20 UTC (rev 4448) @@ -0,0 +1,313 @@ +<test> + <request url="/en/csw"> + <csw:GetCapabilities xmlns:csw="http: // www.opengis.net/cat/csw/2.0.2" service="CSW"> + <ows:AcceptVersions xmlns:ows="http://www.opengis.net/ows"> + <ows:Version>2.0.2</ows:Version> + </ows:AcceptVersions> + <ows:AcceptFormats xmlns:ows="http://www.opengis.net/ows"> + <ows:OutputFormat>application/xml</ows:OutputFormat> + </ows:AcceptFormats> + </csw:GetCapabilities> + </request> + <response> + <csw:Capabilities xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:gml="http://www.opengis.net/gml" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:ows="http://www.opengis.net/ows" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"> + <ows:ServiceIdentification> + <ows:Title/> + <ows:Abstract/> + <ows:Keywords> + <!-- Keywords are automatically added by GeoNetwork + according to catalogue content. --> + <ows:Keyword>dza</ows:Keyword> + <ows:Keyword>Global</ows:Keyword> + <ows:Keyword>Biology</ows:Keyword> + <ows:Keyword>water resources</ows:Keyword> + <ows:Keyword>daz</ows:Keyword> + <ows:Keyword>dazda</ows:Keyword> + <ows:Keyword>endangered plant species</ows:Keyword> + <ows:Keyword>endangered animal species</ows:Keyword> + <ows:Keyword>Eurasia</ows:Keyword> + <ows:Keyword>Canada</ows:Keyword> + <ows:Type>theme</ows:Type> + </ows:Keywords> + <ows:ServiceType>CSW</ows:ServiceType> + <ows:ServiceTypeVersion>2.0.2</ows:ServiceTypeVersion> + <ows:Fees/> + <ows:AccessConstraints/> + </ows:ServiceIdentification> + <ows:ServiceProvider> + <ows:ProviderName>GeoNetwork opensource</ows:ProviderName> + <ows:ProviderSite xlink:href="http://localhost:8080/geonetwork"/> + <ows:ServiceContact> + <ows:IndividualName/> + <ows:PositionName/> + <ows:ContactInfo> + <ows:Phone> + <ows:Voice/> + <ows:Facsimile/> + </ows:Phone> + <ows:Address> + <ows:DeliveryPoint/> + <ows:City/> + <ows:AdministrativeArea/> + <ows:PostalCode/> + <ows:Country/> + <ows:ElectronicMailAddress/> + </ows:Address> + <ows:HoursOfService/> + <ows:ContactInstructions/> + </ows:ContactInfo> + <ows:Role/> + </ows:ServiceContact> + </ows:ServiceProvider> + <ows:OperationsMetadata> + <ows:Operation name="GetCapabilities"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + <ows:Post xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + </ows:HTTP> + </ows:DCP> + <ows:Parameter name="sections"> + <ows:Value>ServiceIdentification</ows:Value> + <ows:Value>ServiceProvider</ows:Value> + <ows:Value>OperationsMetadata</ows:Value> + <ows:Value>Filter_Capabilities</ows:Value> + </ows:Parameter> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + </ows:Constraint> + </ows:Operation> + <ows:Operation name="DescribeRecord"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + <ows:Post xlink:href="http://localhost:8080/geonetwork/srv/en/csw"> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + <ows:Value>SOAP</ows:Value> + </ows:Constraint> + </ows:Post> + </ows:HTTP> + </ows:DCP> + <ows:Parameter name="typeName"> + <ows:Value>csw:Record</ows:Value> + <ows:Value>gmd:MD_Metadata</ows:Value> + </ows:Parameter> + <ows:Parameter name="outputFormat"> + <ows:Value>application/xml</ows:Value> + </ows:Parameter> + <ows:Parameter name="schemaLanguage"> + <ows:Value>http://www.w3.org/TR/xmlschema-1/</ows:Value> + </ows:Parameter> + <ows:Parameter name="typeName"> + <ows:Value>csw:Record</ows:Value> + <ows:Value>gmd:MD_Metadata</ows:Value> + </ows:Parameter> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + </ows:Constraint> + </ows:Operation> + <ows:Operation name="GetDomain"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + <ows:Post xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + </ows:HTTP> + </ows:DCP> + </ows:Operation> + <ows:Operation name="GetRecords"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + <ows:Post xlink:href="http://localhost:8080/geonetwork/srv/en/csw"> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + <ows:Value>SOAP</ows:Value> + </ows:Constraint> + </ows:Post> + </ows:HTTP> + </ows:DCP> + <!-- FIXME : Gets it from enum or conf --> + <ows:Parameter name="resultType"> + <ows:Value>hits</ows:Value> + <ows:Value>results</ows:Value> + <ows:Value>validate</ows:Value> + </ows:Parameter> + <ows:Parameter name="outputFormat"> + <ows:Value>application/xml</ows:Value> + </ows:Parameter> + <ows:Parameter name="outputSchema"> + <ows:Value>http://www.opengis.net/cat/csw/2.0.2</ows:Value> + <ows:Value>http://www.isotc211.org/2005/gmd</ows:Value> + </ows:Parameter> + <ows:Parameter name="typeNames"> + <ows:Value>csw:Record</ows:Value> + <ows:Value>gmd:MD_Metadata</ows:Value> + </ows:Parameter> + <ows:Parameter name="CONSTRAINTLANGUAGE"> + <ows:Value>FILTER</ows:Value> + <ows:Value>CQL_TEXT</ows:Value> + </ows:Parameter> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + </ows:Constraint> + <ows:Constraint name="SupportedISOQueryables"> + <ows:Value>Operation</ows:Value> + <ows:Value>Format</ows:Value> + <ows:Value>OrganisationName</ows:Value> + <ows:Value>Type</ows:Value> + <ows:Value>ServiceType</ows:Value> + <ows:Value>DistanceValue</ows:Value> + <ows:Value>ResourceLanguage</ows:Value> + <ows:Value>RevisionDate</ows:Value> + <ows:Value>OperatesOn</ows:Value> + <ows:Value>GeographicDescriptionCode</ows:Value> + <ows:Value>AnyText</ows:Value> + <ows:Value>Modified</ows:Value> + <ows:Value>PublicationDate</ows:Value> + <ows:Value>ResourceIdentifier</ows:Value> + <ows:Value>ParentIdentifier</ows:Value> + <ows:Value>Identifier</ows:Value> + <ows:Value>CouplingType</ows:Value> + <ows:Value>TopicCategory</ows:Value> + <ows:Value>OperatesOnIdentifier</ows:Value> + <ows:Value>ServiceTypeVersion</ows:Value> + <ows:Value>TempExtent_end</ows:Value> + <ows:Value>Subject</ows:Value> + <ows:Value>CreationDate</ows:Value> + <ows:Value>OperatesOnName</ows:Value> + <ows:Value>Title</ows:Value> + <ows:Value>DistanceUOM</ows:Value> + <ows:Value>Denominator</ows:Value> + <ows:Value>AlternateTitle</ows:Value> + <ows:Value>Language</ows:Value> + <ows:Value>TempExtent_begin</ows:Value> + <ows:Value>HasSecurityConstraints</ows:Value> + <ows:Value>KeywordType</ows:Value> + <ows:Value>Abstract</ows:Value> + </ows:Constraint> + <ows:Constraint name="AdditionalQueryables"> + <ows:Value>SpecificationDate</ows:Value> + <ows:Value>ConditionApplyingToAccessAndUse</ows:Value> + <ows:Value>AccessConstraints</ows:Value> + <ows:Value>MetadataPointOfContact</ows:Value> + <ows:Value>SpecificationDateType</ows:Value> + <ows:Value>Classification</ows:Value> + <ows:Value>OtherConstraints</ows:Value> + <ows:Value>Degree</ows:Value> + <ows:Value>Lineage</ows:Value> + <ows:Value>SpecificationTitle</ows:Value> + </ows:Constraint> + </ows:Operation> + <ows:Operation name="GetRecordById"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + <ows:Post xlink:href="http://localhost:8080/geonetwork/srv/en/csw"> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + <ows:Value>SOAP</ows:Value> + </ows:Constraint> + </ows:Post> + </ows:HTTP> + </ows:DCP> + <ows:Parameter name="outputSchema"> + <ows:Value>http://www.opengis.net/cat/csw/2.0.2</ows:Value> + <ows:Value>http://www.isotc211.org/2005/gmd</ows:Value> + </ows:Parameter> + <ows:Parameter name="outputFormat"> + <ows:Value>application/xml</ows:Value> + </ows:Parameter> + <ows:Parameter name="resultType"> + <ows:Value>hits</ows:Value> + <ows:Value>results</ows:Value> + <ows:Value>validate</ows:Value> + </ows:Parameter> + <ows:Parameter name="ElementSetName"> + <ows:Value>brief</ows:Value> + <ows:Value>summary</ows:Value> + <ows:Value>full</ows:Value> + </ows:Parameter> + <ows:Constraint name="PostEncoding"> + <ows:Value>XML</ows:Value> + </ows:Constraint> + </ows:Operation> + <ows:Operation name="Transaction"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + <ows:Post xlink:href="http://localhost:8080/geonetwork/srv/en/csw"/> + </ows:HTTP> + </ows:DCP> + </ows:Operation> + <!-- + <ows:Operation name="Harvest"> + <ows:DCP> + <ows:HTTP> + <ows:Get xlink:href="http://$HOST:$PORT$SERVLET/srv/en/csw" /> + <ows:Post xlink:href="http://$HOST:$PORT$SERVLET/srv/en/csw" /> + </ows:HTTP> + </ows:DCP> + </ows:Operation> + --> + <ows:Parameter name="service"> + <ows:Value>http://www.opengis.net/cat/csw/2.0.2</ows:Value> + </ows:Parameter> + <ows:Parameter name="version"> + <ows:Value>2.0.2</ows:Value> + </ows:Parameter> + <ows:Constraint name="IsoProfiles"> + <ows:Value>http://www.isotc211.org/2005/gmd</ows:Value> + </ows:Constraint> + <ows:Constraint name="PostEncoding"> + <ows:Value>SOAP</ows:Value> + </ows:Constraint> + </ows:OperationsMetadata> + <ogc:Filter_Capabilities> + <ogc:Spatial_Capabilities> + <ogc:GeometryOperands> + <ogc:GeometryOperand>gml:Envelope</ogc:GeometryOperand> + <ogc:GeometryOperand>gml:Point</ogc:GeometryOperand> + <ogc:GeometryOperand>gml:LineString</ogc:GeometryOperand> + <ogc:GeometryOperand>gml:Polygon</ogc:GeometryOperand> + </ogc:GeometryOperands> + <ogc:SpatialOperators> + <ogc:SpatialOperator name="BBOX"/> + <ogc:SpatialOperator name="Equals"/> + <ogc:SpatialOperator name="Overlaps"/> + <ogc:SpatialOperator name="Disjoint"/> + <ogc:SpatialOperator name="Intersects"/> + <ogc:SpatialOperator name="Touches"/> + <ogc:SpatialOperator name="Crosses"/> + <ogc:SpatialOperator name="Within"/> + <ogc:SpatialOperator name="Contains"/> + <!-- + <ogc:SpatialOperator name="Beyond"/> + <ogc:SpatialOperator name="DWithin"/> + The 'SpatialOperator' element can have a GeometryOperands child --> + </ogc:SpatialOperators> + </ogc:Spatial_Capabilities> + <ogc:Scalar_Capabilities> + <ogc:LogicalOperators/> + <ogc:ComparisonOperators> + <ogc:ComparisonOperator>EqualTo</ogc:ComparisonOperator> + <ogc:ComparisonOperator>Like</ogc:ComparisonOperator> + <ogc:ComparisonOperator>LessThan</ogc:ComparisonOperator> + <ogc:ComparisonOperator>GreaterThan</ogc:ComparisonOperator> + <ogc:ComparisonOperator>LessThanEqualTo</ogc:ComparisonOperator> + <ogc:ComparisonOperator>GreaterThanEqualTo</ogc:ComparisonOperator> + <ogc:ComparisonOperator>NotEqualTo</ogc:ComparisonOperator> + <ogc:ComparisonOperator>Between</ogc:ComparisonOperator> + <ogc:ComparisonOperator>NullCheck</ogc:ComparisonOperator> + <!-- FIXME : Check NullCheck operation is available --> + </ogc:ComparisonOperators> + </ogc:Scalar_Capabilities> + <ogc:Id_Capabilities> + <ogc:EID/> + <ogc:FID/>... [truncated message content] |