Changeset 8048 in josm for trunk/data/maps.xsd


Ignore:
Timestamp:
2015-02-11T19:33:44+01:00 (9 years ago)
Author:
stoecker
Message:

change XSD, so description and mirror can appear more than once (with unwanted side effects)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/maps.xsd

    r7992 r8048  
    604604                        <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
    605605                                <xs:complexType>
    606                                         <xs:all>
    607                                                 <!-- The name of the imagery source -->
    608                                                 <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string" />
    609                                                 <!-- A description of the imagery source -->
    610                                                 <xs:element name="description" minOccurs="0" type="tns:description" />
    611                                                 <!-- A unique id for the imagery source -->
    612                                                 <xs:element name="id" minOccurs="0" maxOccurs="1" type="tns:id" />
    613                                                 <!-- The type. Can be tms, wms and html. In addition, there are the special types bing and scanex
    614                                                         with hardcoded behaviour. -->
    615                                                 <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
    616                                                 <!-- To define as default server for this type -->
    617                                                 <xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:boolean" />
    618                                                 <!-- The URL of the service. Can contain templates, e.g. {zoom} will be replaced by the current
    619                                                         zoom level (see below). The list of services is a XML document, so the '&' character is represented by
    620                                                         '&amp;'. Alternatively, the URL can be wrapped in a <![CDATA[...]]> section. -->
    621                                                 <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
    622                                                 <!-- A list of supported projections (inside <code> tags) -->
    623                                                 <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
    624                                                 <!-- TMS only: The minimum zoom level -->
    625                                                 <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    626                                                 <!-- TMS only: The maximum zoom level. For higher scales, the images of the maximum level is enlarged. -->
    627                                                 <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    628                                                 <!-- The area of use, e.g. <bounds min-lat='45.7' min-lon='5.9' max-lat='55.0' max-lon='17.3'/> -->
    629                                                 <xs:element name="bounds" minOccurs="0" maxOccurs="1" type="tns:bounds" />
    630                                                 <!-- Provide a source that this background can be used for OSM. A page on the OSM-wiki with additional explanation and further references is preferred, but other sources (for example the license text) can also be linked. -->
    631                                                 <xs:element name="permission-ref" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
    632                                                 <!-- A link to an EULA text that has to be accepted by the user, before the imagery source is added. -->
    633                                                 <xs:element name="eula" minOccurs="0" maxOccurs="1" type="tns:eula" />
    634                                                 <!-- The attribution text to be shown all the time on the map. -->
    635                                                 <xs:element name="attribution-text" minOccurs="0" maxOccurs="1" type="tns:attribution-text" />
    636                                                 <!-- A link that is opened, when the user clicks on the attribution text -->
    637                                                 <xs:element name="attribution-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
    638                                                 <!-- A image that is displayed as attribution for the imagery background -->
    639                                                 <xs:element name="logo-image" minOccurs="0" maxOccurs="1" type="xs:string" />
    640                                                 <!-- A link that is opened, when the user clicks on the logo image -->
    641                                                 <xs:element name="logo-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
    642                                                 <!-- terms-of-use text (if missing, default tou text will be used, unless terms-of-use-url is also missing) -->
    643                                                 <xs:element name="terms-of-use-text" minOccurs="0" maxOccurs="1" type="xs:string" />
    644                                                 <!-- A link that is opened, when the user clicks on the terms-of-use text -->
    645                                                 <xs:element name="terms-of-use-url" minOccurs="0" maxOccurs="1" type="xs:string" />
    646                                                 <!-- The ISO 3166 country code -->
    647                                                 <xs:element name="country-code" minOccurs="0" maxOccurs="1" type="tns:iso3166" />
    648                                                 <!-- A base64-encoded image that is displayed as menu/toolbar icon -->
    649                                                 <xs:element name="icon" minOccurs="0" maxOccurs="1" type="xs:string" />
    650                                                 <xs:element name="mirror" minOccurs="0">
    651                                                         <xs:complexType>
    652                                                                 <xs:all>
    653                                                                         <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
    654                                                                         <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
    655                                                                         <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
    656                                                                         <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    657                                                                         <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    658                                                                 </xs:all>
    659                                                         </xs:complexType>
    660                                                 </xs:element>
    661                                         </xs:all>
     606                                        <!-- this is actually not fully correct, but XSD does not allow multiple time the
     607                                                same argument in one xs:all, so this sequence/choice combination, which
     608                                                actually allows to much, only description and mirror can appear more than once! -->
     609                                        <xs:sequence>
     610                                                <xs:choice minOccurs="1" maxOccurs="unbounded">
     611                                                        <!-- The name of the imagery source -->
     612                                                        <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string" />
     613                                                        <!-- A description of the imagery source -->
     614                                                        <xs:element name="description" minOccurs="0" type="tns:description" />
     615                                                        <!-- A unique id for the imagery source -->
     616                                                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="tns:id" />
     617                                                        <!-- The type. Can be tms, wms and html. In addition, there are the special types bing and scanex
     618                                                                with hardcoded behaviour. -->
     619                                                        <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
     620                                                        <!-- To define as default server for this type -->
     621                                                        <xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:boolean" />
     622                                                        <!-- The URL of the service. Can contain templates, e.g. {zoom} will be replaced by the current
     623                                                                zoom level (see below). The list of services is a XML document, so the '&' character is represented by
     624                                                                '&amp;'. Alternatively, the URL can be wrapped in a <![CDATA[...]]> section. -->
     625                                                        <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
     626                                                        <!-- A list of supported projections (inside <code> tags) -->
     627                                                        <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
     628                                                        <!-- TMS only: The minimum zoom level -->
     629                                                        <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     630                                                        <!-- TMS only: The maximum zoom level. For higher scales, the images of the maximum level is enlarged. -->
     631                                                        <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     632                                                        <!-- The area of use, e.g. <bounds min-lat='45.7' min-lon='5.9' max-lat='55.0' max-lon='17.3'/> -->
     633                                                        <xs:element name="bounds" minOccurs="0" maxOccurs="1" type="tns:bounds" />
     634                                                        <!-- Provide a source that this background can be used for OSM. A page on the OSM-wiki with additional explanation and further references is preferred, but other sources (for example the license text) can also be linked. -->
     635                                                        <xs:element name="permission-ref" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
     636                                                        <!-- A link to an EULA text that has to be accepted by the user, before the imagery source is added. -->
     637                                                        <xs:element name="eula" minOccurs="0" maxOccurs="1" type="tns:eula" />
     638                                                        <!-- The attribution text to be shown all the time on the map. -->
     639                                                        <xs:element name="attribution-text" minOccurs="0" maxOccurs="1" type="tns:attribution-text" />
     640                                                        <!-- A link that is opened, when the user clicks on the attribution text -->
     641                                                        <xs:element name="attribution-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
     642                                                        <!-- A image that is displayed as attribution for the imagery background -->
     643                                                        <xs:element name="logo-image" minOccurs="0" maxOccurs="1" type="xs:string" />
     644                                                        <!-- A link that is opened, when the user clicks on the logo image -->
     645                                                        <xs:element name="logo-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
     646                                                        <!-- terms-of-use text (if missing, default tou text will be used, unless terms-of-use-url is also missing) -->
     647                                                        <xs:element name="terms-of-use-text" minOccurs="0" maxOccurs="1" type="xs:string" />
     648                                                        <!-- A link that is opened, when the user clicks on the terms-of-use text -->
     649                                                        <xs:element name="terms-of-use-url" minOccurs="0" maxOccurs="1" type="xs:string" />
     650                                                        <!-- The ISO 3166 country code -->
     651                                                        <xs:element name="country-code" minOccurs="0" maxOccurs="1" type="tns:iso3166" />
     652                                                        <!-- A base64-encoded image that is displayed as menu/toolbar icon -->
     653                                                        <xs:element name="icon" minOccurs="0" maxOccurs="1" type="xs:string" />
     654                                                        <xs:element name="mirror" minOccurs="0">
     655                                                                <xs:complexType>
     656                                                                        <xs:all>
     657                                                                                <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
     658                                                                                <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
     659                                                                                <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
     660                                                                                <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     661                                                                                <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     662                                                                        </xs:all>
     663                                                                </xs:complexType>
     664                                                        </xs:element>
     665                                                </xs:choice>
     666                                        </xs:sequence>
    662667                                        <xs:attribute name="last-check" type="xs:date" use="optional" />
    663668                                </xs:complexType>
     
    667672
    668673        <xs:element name="imagery" type="tns:imagery" />
    669 
    670674</xs:schema>
Note: See TracChangeset for help on using the changeset viewer.