Skip to content

Commit

Permalink
Adding INSPIRE ExtendedCapabilities and DOCTYPE definition to WMS 1.1.1.
Browse files Browse the repository at this point in the history
  • Loading branch information
Schpidi committed May 29, 2012
1 parent bf06d96 commit e609e44
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions mapwms.c
Expand Up @@ -3073,8 +3073,12 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
msIO_printf("<!DOCTYPE WMT_MS_Capabilities SYSTEM \"%s\"\n", dtd_url);
msIO_printf(" [\n");

/* some mapserver specific declarations will go here */
msIO_printf(" <!ELEMENT VendorSpecificCapabilities EMPTY>\n");
if (nVersion == OWS_1_1_1 && msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
msIO_printf("<!ELEMENT VendorSpecificCapabilities (inspire_vs:ExtendedCapabilities)><!ELEMENT inspire_vs:ExtendedCapabilities ((inspire_common:MetadataUrl, inspire_common:SupportedLanguages, inspire_common:ResponseLanguage) | (inspire_common:ResourceLocator+, inspire_common:ResourceType, inspire_common:TemporalReference+, inspire_common:Conformity+, inspire_common:MetadataPointOfContact+, inspire_common:MetadataDate, inspire_common:SpatialDataServiceType, inspire_common:MandatoryKeyword+, inspire_common:Keyword*, inspire_common:SupportedLanguages, inspire_common:ResponseLanguage, inspire_common:MetadataUrl?))><!ATTLIST inspire_vs:ExtendedCapabilities xmlns:inspire_vs CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/inspire_vs/1.0\" ><!ELEMENT inspire_common:MetadataUrl (inspire_common:URL, inspire_common:MediaType*)><!ATTLIST inspire_common:MetadataUrl xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" xmlns:xsi CDATA #FIXED \"http://www.w3.org/2001/XMLSchema-instance\" xsi:type CDATA #FIXED \"inspire_common:resourceLocatorType\" ><!ELEMENT inspire_common:URL (#PCDATA)><!ATTLIST inspire_common:URL xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:MediaType (#PCDATA)><!ATTLIST inspire_common:MediaType xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:SupportedLanguages (inspire_common:DefaultLanguage, inspire_common:SupportedLanguage*)><!ATTLIST inspire_common:SupportedLanguages xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:DefaultLanguage (inspire_common:Language)><!ATTLIST inspire_common:DefaultLanguage xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:SupportedLanguage (inspire_common:Language)><!ATTLIST inspire_common:SupportedLanguage xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:ResponseLanguage (inspire_common:Language)><!ATTLIST inspire_common:ResponseLanguage xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:Language (#PCDATA)><!ATTLIST inspire_common:Language xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:ResourceLocator (inspire_common:URL, inspire_common:MediaType*)><!ATTLIST inspire_common:ResourceLocator xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:ResourceType (#PCDATA)> <!ATTLIST inspire_common:ResourceType xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:TemporalReference (inspire_common:DateOfCreation?, inspire_common:DateOfLastRevision?, inspire_common:DateOfPublication*, inspire_common:TemporalExtent*)><!ATTLIST inspire_common:TemporalReference xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:DateOfCreation (#PCDATA)> <!ATTLIST inspire_common:DateOfCreation xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:DateOfLastRevision (#PCDATA)><!ATTLIST inspire_common:DateOfLastRevision xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:DateOfPublication (#PCDATA)><!ATTLIST inspire_common:DateOfPublication xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:TemporalExtent (inspire_common:IndividualDate | inspire_common:IntervalOfDates)><!ATTLIST inspire_common:TemporalExtent xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:IndividualDate (#PCDATA)> <!ATTLIST inspire_common:IndividualDate xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\"><!ELEMENT inspire_common:IntervalOfDates (inspire_common:StartingDate, inspire_common:EndDate)><!ATTLIST inspire_common:IntervalOfDates xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:StartingDate (#PCDATA)><!ATTLIST inspire_common:StartingDate xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:EndDate (#PCDATA)><!ATTLIST inspire_common:EndDate xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:Conformity (inspire_common:Specification, inspire_common:Degree)><!ATTLIST inspire_common:Conformity xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:Specification (inspire_common:Title, (inspire_common:DateOfPublication | inspire_common:DateOfCreation | inspire_common:DateOfLastRevision), inspire_common:URI*, inspire_common:ResourceLocator*)><!ATTLIST inspire_common:Specification xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:Title (#PCDATA)><!ATTLIST inspire_common:Title xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:URI (#PCDATA)><!ATTLIST inspire_common:URI xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:Degree (#PCDATA)><!ATTLIST inspire_common:Degree xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:MetadataPointOfContact (inspire_common:OrganisationName, inspire_common:EmailAddress)><!ATTLIST inspire_common:MetadataPointOfContact xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:OrganisationName (#PCDATA)><!ATTLIST inspire_common:OrganisationName xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:EmailAddress (#PCDATA)><!ATTLIST inspire_common:EmailAddress xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:MetadataDate (#PCDATA)><!ATTLIST inspire_common:MetadataDate xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:SpatialDataServiceType (#PCDATA)><!ATTLIST inspire_common:SpatialDataServiceType xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:MandatoryKeyword (inspire_common:KeywordValue)><!ATTLIST inspire_common:MandatoryKeyword xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:KeywordValue (#PCDATA)><!ATTLIST inspire_common:KeywordValue xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" ><!ELEMENT inspire_common:Keyword (inspire_common:OriginatingControlledVocabulary?, inspire_common:KeywordValue)><!ATTLIST inspire_common:Keyword xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\" xmlns:xsi CDATA #FIXED \"http://www.w3.org/2001/XMLSchemainstance\" xsi:type (inspire_common:inspireTheme_bul | inspire_common:inspireTheme_cze | inspire_common:inspireTheme_dan | inspire_common:inspireTheme_dut | inspire_common:inspireTheme_eng | inspire_common:inspireTheme_est | inspire_common:inspireTheme_fin | inspire_common:inspireTheme_fre | inspire_common:inspireTheme_ger | inspire_common:inspireTheme_gre | inspire_common:inspireTheme_hun | inspire_common:inspireTheme_gle | inspire_common:inspireTheme_ita | inspire_common:inspireTheme_lav | inspire_common:inspireTheme_lit | inspire_common:inspireTheme_mlt | inspire_common:inspireTheme_pol | inspire_common:inspireTheme_por | inspire_common:inspireTheme_rum | inspire_common:inspireTheme_slo | inspire_common:inspireTheme_slv | inspire_common:inspireTheme_spa | inspire_common:inspireTheme_swe) #IMPLIED ><!ELEMENT inspire_common:OriginatingControlledVocabulary (inspire_common:Title, (inspire_common:DateOfPublication | inspire_common:DateOfCreation | inspire_common:DateOfLastRevision), inspire_common:URI*, inspire_common:ResourceLocator*)><!ATTLIST inspire_common:OriginatingControlledVocabulary xmlns:inspire_common CDATA #FIXED \"http://inspire.ec.europa.eu/schemas/common/1.0\">\n");
} else {
/* some mapserver specific declarations will go here */
msIO_printf(" <!ELEMENT VendorSpecificCapabilities EMPTY>\n");
}

msIO_printf(" ]> <!-- end of DOCTYPE declaration -->\n\n");
}
Expand Down Expand Up @@ -3374,7 +3378,14 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
msIO_printf(" </Exception>\n");

if (nVersion != OWS_1_3_0)
msIO_printf(" <VendorSpecificCapabilities />\n"); /* nothing yet */
/* INSPIRE extended capabilities for WMS 1.1.1 */
if (nVersion == OWS_1_1_1 && msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
msIO_printf(" <VendorSpecificCapabilities>\n");
msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "MO", OWS_WARN, "inspire_vs:ExtendedCapabilities", validated_language, OWS_WMS);
msIO_printf(" </VendorSpecificCapabilities>\n");
} else {
msIO_printf(" <VendorSpecificCapabilities />\n"); /* nothing yet */
}

/* SLD support */
if (strcasecmp(sldenabled, "true") == 0)
Expand All @@ -3387,7 +3398,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
}
}

/* INSPIRE extended capabilities */
/* INSPIRE extended capabilities for WMS 1.3.0 */
if (nVersion >= OWS_1_3_0 && msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "MO", OWS_WARN, "inspire_vs:ExtendedCapabilities", validated_language, OWS_WMS);
}
Expand Down

4 comments on commit e609e44

@rouault
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a compilation error with MSVC 7.1.

mapwms.c(3078) : error C2026: string too big, trailing characters truncated .

See http://www.gisinternals.com/sdk/build-output/vc7-20120531-4-51-34-44-vc7-dev.txt

@Schpidi
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ouch, need to split this string.

What is the maximum length possible?

@rouault
Copy link
Contributor

@rouault rouault commented on e609e44 Jun 1, 2012

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rouault
Copy link
Contributor

@rouault rouault commented on e609e44 Jun 3, 2012

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see Tamas fixed that in http://git.io/MWlUCA

Please sign in to comment.