<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  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.
-->

<srv:SV_ServiceIdentification
    xmlns:srv = "http://standards.iso.org/iso/19115/-3/srv/2.0"
    xmlns:mri = "http://standards.iso.org/iso/19115/-3/mri/1.0"
    xmlns:cit = "http://standards.iso.org/iso/19115/-3/cit/1.0"
    xmlns:gco = "http://standards.iso.org/iso/19115/-3/gco/1.0"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation = "http://standards.iso.org/iso/19115/-3/srv/2.0
                          http://standards.iso.org/iso/19115/-3/srv/2.0/srv.xsd">

  <mri:citation gco:nilReason="missing"/>
  <mri:abstract>
    <gco:CharacterString>A dummy service for testing purpose.</gco:CharacterString>
  </mri:abstract>

  <srv:serviceType>
    <gco:ScopedName>Web Map Server</gco:ScopedName>
  </srv:serviceType>

  <srv:serviceTypeVersion>
    <gco:CharacterString>1.0</gco:CharacterString>
  </srv:serviceTypeVersion>

  <srv:couplingType>
    <srv:SV_CouplingType codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#SV_CouplingType" codeListValue="loose" codeSpace="eng">Loose</srv:SV_CouplingType>
  </srv:couplingType>

  <srv:coupledResource>
    <srv:SV_CoupledResource>
      <srv:scopedName>
        <gco:ScopedName>mySpace:ABC-123</gco:ScopedName>
      </srv:scopedName>
      <srv:resourceReference>
        <cit:CI_Citation>
          <cit:title>
             <gco:CharacterString>WMS specification</gco:CharacterString>
          </cit:title>
       </cit:CI_Citation>
      </srv:resourceReference>
      <srv:operation>
        <srv:SV_OperationMetadata>
          <srv:operationName>
            <gco:CharacterString>Get Map</gco:CharacterString>
          </srv:operationName>
          <srv:distributedComputingPlatform>
            <srv:DCPList codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#DCPList" codeListValue="WebServices" codeSpace="eng">Web services</srv:DCPList>
          </srv:distributedComputingPlatform>
          <srv:connectPoint gco:nilReason="missing"/>
          <srv:parameter>
            <srv:SV_Parameter>
              <srv:name>
                <gco:MemberName>
                  <gco:aName>
                    <gco:CharacterString>Version</gco:CharacterString>
                  </gco:aName>
                  <gco:attributeType>
                    <gco:TypeName>
                      <gco:aName>
                        <gco:CharacterString>CharacterString</gco:CharacterString>
                      </gco:aName>
                    </gco:TypeName>
                  </gco:attributeType>
                </gco:MemberName>
              </srv:name>
              <srv:direction>
                <srv:SV_ParameterDirection>in</srv:SV_ParameterDirection>
              </srv:direction>
              <srv:optionality>
                <gco:Boolean>true</gco:Boolean>
              </srv:optionality>
              <srv:repeatability>
                <gco:Boolean>false</gco:Boolean>
              </srv:repeatability>
            </srv:SV_Parameter>
          </srv:parameter>
        </srv:SV_OperationMetadata>
      </srv:operation>
    </srv:SV_CoupledResource>
  </srv:coupledResource>

  <srv:containsOperations>
    <srv:SV_OperationMetadata>
      <srv:operationName>
        <gco:CharacterString>Get Map</gco:CharacterString>
      </srv:operationName>
      <srv:distributedComputingPlatform>
        <srv:DCPList codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#DCPList" codeListValue="WebServices" codeSpace="eng">Web services</srv:DCPList>
      </srv:distributedComputingPlatform>
      <srv:connectPoint gco:nilReason="missing"/>
      <srv:parameter>
        <srv:SV_Parameter>
          <srv:name>
            <gco:MemberName>
              <gco:aName>
                <gco:CharacterString>Version</gco:CharacterString>
              </gco:aName>
              <gco:attributeType>
                <gco:TypeName>
                  <gco:aName>
                    <gco:CharacterString>CharacterString</gco:CharacterString>
                  </gco:aName>
                </gco:TypeName>
              </gco:attributeType>
            </gco:MemberName>
          </srv:name>
          <srv:direction>
            <srv:SV_ParameterDirection>in</srv:SV_ParameterDirection>
          </srv:direction>
          <srv:optionality>
            <gco:Boolean>true</gco:Boolean>
          </srv:optionality>
          <srv:repeatability>
            <gco:Boolean>false</gco:Boolean>
          </srv:repeatability>
        </srv:SV_Parameter>
      </srv:parameter>
    </srv:SV_OperationMetadata>
  </srv:containsOperations>
</srv:SV_ServiceIdentification>
