Changeset 11812 in josm for trunk


Ignore:
Timestamp:
2017-04-01T02:15:29+02:00 (8 years ago)
Author:
Don-vip
Message:

sonar - xml:IllegalTabCheck - Tabulation characters should not be used

Location:
trunk/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/maps.xsd

    r11612 r11812  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://josm.openstreetmap.de/maps-1.0"
    3         xmlns:tns="http://josm.openstreetmap.de/maps-1.0" elementFormDefault="qualified">
    4 
    5         <xs:simpleType name="latitude">
    6                 <xs:restriction base="xs:decimal">
    7                         <xs:minInclusive value="-90" />
    8                         <xs:maxInclusive value="+90" />
    9                 </xs:restriction>
    10         </xs:simpleType>
    11 
    12         <xs:simpleType name="longitude">
    13                 <xs:restriction base="xs:decimal">
    14                         <xs:minInclusive value="-180" />
    15                         <xs:maxInclusive value="+180" />
    16                 </xs:restriction>
    17         </xs:simpleType>
    18        
    19         <xs:simpleType name="id">
     3    xmlns:tns="http://josm.openstreetmap.de/maps-1.0" elementFormDefault="qualified">
     4
     5    <xs:simpleType name="latitude">
     6        <xs:restriction base="xs:decimal">
     7            <xs:minInclusive value="-90" />
     8            <xs:maxInclusive value="+90" />
     9        </xs:restriction>
     10    </xs:simpleType>
     11
     12    <xs:simpleType name="longitude">
     13        <xs:restriction base="xs:decimal">
     14            <xs:minInclusive value="-180" />
     15            <xs:maxInclusive value="+180" />
     16        </xs:restriction>
     17    </xs:simpleType>
     18   
     19    <xs:simpleType name="id">
    2020        <!-- exclude white space characters and characters that are not valid for file names in Windows -->
    21                 <xs:restriction base="xs:string">
    22                         <xs:pattern value='[^\s/\\:*?"&lt;>|]+' />
    23                 </xs:restriction>
    24         </xs:simpleType>
    25 
    26         <xs:simpleType name="type">
    27                 <xs:restriction base="xs:string">
    28                         <xs:enumeration value="wms" />
    29                         <xs:enumeration value="wms_endpoint" />
    30                         <xs:enumeration value="wmts" />
    31                         <xs:enumeration value="tms" />
    32                         <xs:enumeration value="bing" />
    33                         <xs:enumeration value="scanex" />
    34                 </xs:restriction>
    35         </xs:simpleType>
    36 
    37         <xs:simpleType name="zoom">
    38                 <xs:restriction base="xs:integer">
    39                         <xs:minInclusive value="0" />
    40                         <xs:maxInclusive value="24" />
    41                 </xs:restriction>
    42         </xs:simpleType>
    43 
    44         <xs:complexType name="eula">
    45                 <xs:simpleContent>
    46                         <xs:extension base="xs:anyURI" >
    47                                 <xs:attribute name="mandatory" type="xs:boolean" use="optional" />
    48                         </xs:extension>
    49                 </xs:simpleContent>
    50         </xs:complexType>
    51 
    52         <xs:complexType name="attribution-text">
    53                 <xs:simpleContent>
    54                         <xs:extension base="xs:string">
    55                                 <xs:attribute name="mandatory" type="xs:boolean" use="optional" />
    56                         </xs:extension>
    57                 </xs:simpleContent>
    58         </xs:complexType>
    59 
    60         <xs:complexType name="description">
    61                 <xs:simpleContent>
    62                         <xs:extension base="xs:string">
    63                                 <xs:attribute name="lang" type="xs:string" use="required" />
    64                         </xs:extension>
    65                 </xs:simpleContent>
    66         </xs:complexType>
    67 
    68         <xs:complexType name="name">
    69                 <xs:simpleContent>
    70                         <xs:extension base="xs:string">
    71                                 <xs:attribute name="lang" type="xs:string" use="optional" />
    72                         </xs:extension>
    73                 </xs:simpleContent>
    74         </xs:complexType>
    75 
    76         <xs:complexType name="point">
    77                 <xs:attribute name="lat" type="tns:latitude" use="required" />
    78                 <xs:attribute name="lon" type="tns:longitude" use="required" />
    79         </xs:complexType>
    80 
    81         <xs:complexType name="shape">
    82                 <xs:sequence>
    83                         <xs:element name="point" minOccurs="3" maxOccurs="999" type="tns:point" />
    84                 </xs:sequence>
    85         </xs:complexType>
    86 
    87         <xs:complexType name="bounds">
    88                 <xs:sequence>
    89                         <xs:element name="shape" minOccurs="0" maxOccurs="100" type="tns:shape" />
    90                 </xs:sequence>
    91                 <xs:attribute name="min-lat" type="tns:latitude" use="required" />
    92                 <xs:attribute name="min-lon" type="tns:longitude" use="required" />
    93                 <xs:attribute name="max-lat" type="tns:latitude" use="required" />
    94                 <xs:attribute name="max-lon" type="tns:longitude" use="required" />
    95         </xs:complexType>
    96 
    97         <xs:complexType name="projections">
    98                 <xs:sequence>
    99                         <!-- TODO: find an easy way to validate projections codes -->
    100                         <xs:element name="code" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
    101                 </xs:sequence>
    102         </xs:complexType>
    103 
    104         <!-- ISO3166-1, taken from http://www.iso.org/iso/country_codes/iso_3166_code_lists.htm + "EU" for Europe -->
    105         <xs:simpleType name="iso3166">
    106                 <xs:restriction base="xs:string">
    107                         <!-- EUROPE (JOSM ONLY) -->
    108                         <xs:enumeration value="EU" />
    109                         <!-- AFGHANISTAN -->
    110                         <xs:enumeration value="AF" />
    111                         <!-- ÅLAND ISLANDS -->
    112                         <xs:enumeration value="AX" />
    113                         <!-- ALBANIA -->
    114                         <xs:enumeration value="AL" />
    115                         <!-- ALGERIA -->
    116                         <xs:enumeration value="DZ" />
    117                         <!-- AMERICAN SAMOA -->
    118                         <xs:enumeration value="AS" />
    119                         <!-- ANDORRA -->
    120                         <xs:enumeration value="AD" />
    121                         <!-- ANGOLA -->
    122                         <xs:enumeration value="AO" />
    123                         <!-- ANGUILLA -->
    124                         <xs:enumeration value="AI" />
    125                         <!-- ANTARCTICA -->
    126                         <xs:enumeration value="AQ" />
    127                         <!-- ANTIGUA AND BARBUDA -->
    128                         <xs:enumeration value="AG" />
    129                         <!-- ARGENTINA -->
    130                         <xs:enumeration value="AR" />
    131                         <!-- ARMENIA -->
    132                         <xs:enumeration value="AM" />
    133                         <!-- ARUBA -->
    134                         <xs:enumeration value="AW" />
    135                         <!-- AUSTRALIA -->
    136                         <xs:enumeration value="AU" />
    137                         <!-- AUSTRIA -->
    138                         <xs:enumeration value="AT" />
    139                         <!-- AZERBAIJAN -->
    140                         <xs:enumeration value="AZ" />
    141                         <!-- BAHAMAS -->
    142                         <xs:enumeration value="BS" />
    143                         <!-- BAHRAIN -->
    144                         <xs:enumeration value="BH" />
    145                         <!-- BANGLADESH -->
    146                         <xs:enumeration value="BD" />
    147                         <!-- BARBADOS -->
    148                         <xs:enumeration value="BB" />
    149                         <!-- BELARUS -->
    150                         <xs:enumeration value="BY" />
    151                         <!-- BELGIUM -->
    152                         <xs:enumeration value="BE" />
    153                         <!-- BELIZE -->
    154                         <xs:enumeration value="BZ" />
    155                         <!-- BENIN -->
    156                         <xs:enumeration value="BJ" />
    157                         <!-- BERMUDA -->
    158                         <xs:enumeration value="BM" />
    159                         <!-- BHUTAN -->
    160                         <xs:enumeration value="BT" />
    161                         <!-- BOLIVIA, PLURINATIONAL STATE OF -->
    162                         <xs:enumeration value="BO" />
    163                         <!-- BONAIRE, SINT EUSTATIUS AND SABA -->
    164                         <xs:enumeration value="BQ" />
    165                         <!-- BOSNIA AND HERZEGOVINA -->
    166                         <xs:enumeration value="BA" />
    167                         <!-- BOTSWANA -->
    168                         <xs:enumeration value="BW" />
    169                         <!-- BOUVET ISLAND -->
    170                         <xs:enumeration value="BV" />
    171                         <!-- BRAZIL -->
    172                         <xs:enumeration value="BR" />
    173                         <!-- BRITISH INDIAN OCEAN TERRITORY -->
    174                         <xs:enumeration value="IO" />
    175                         <!-- BRUNEI DARUSSALAM -->
    176                         <xs:enumeration value="BN" />
    177                         <!-- BULGARIA -->
    178                         <xs:enumeration value="BG" />
    179                         <!-- BURKINA FASO -->
    180                         <xs:enumeration value="BF" />
    181                         <!-- BURUNDI -->
    182                         <xs:enumeration value="BI" />
    183                         <!-- CAMBODIA -->
    184                         <xs:enumeration value="KH" />
    185                         <!-- CAMEROON -->
    186                         <xs:enumeration value="CM" />
    187                         <!-- CANADA -->
    188                         <xs:enumeration value="CA" />
    189                         <!-- CAPE VERDE -->
    190                         <xs:enumeration value="CV" />
    191                         <!-- CAYMAN ISLANDS -->
    192                         <xs:enumeration value="KY" />
    193                         <!-- CENTRAL AFRICAN REPUBLIC -->
    194                         <xs:enumeration value="CF" />
    195                         <!-- CHAD -->
    196                         <xs:enumeration value="TD" />
    197                         <!-- CHILE -->
    198                         <xs:enumeration value="CL" />
    199                         <!-- CHINA -->
    200                         <xs:enumeration value="CN" />
    201                         <!-- CHRISTMAS ISLAND -->
    202                         <xs:enumeration value="CX" />
    203                         <!-- COCOS (KEELING) ISLANDS -->
    204                         <xs:enumeration value="CC" />
    205                         <!-- COLOMBIA -->
    206                         <xs:enumeration value="CO" />
    207                         <!-- COMOROS -->
    208                         <xs:enumeration value="KM" />
    209                         <!-- CONGO -->
    210                         <xs:enumeration value="CG" />
    211                         <!-- CONGO, THE DEMOCRATIC REPUBLIC OF THE -->
    212                         <xs:enumeration value="CD" />
    213                         <!-- COOK ISLANDS -->
    214                         <xs:enumeration value="CK" />
    215                         <!-- COSTA RICA -->
    216                         <xs:enumeration value="CR" />
    217                         <!-- CÔTE D'IVOIRE -->
    218                         <xs:enumeration value="CI" />
    219                         <!-- CROATIA -->
    220                         <xs:enumeration value="HR" />
    221                         <!-- CUBA -->
    222                         <xs:enumeration value="CU" />
    223                         <!-- CURAÇAO -->
    224                         <xs:enumeration value="CW" />
    225                         <!-- CYPRUS -->
    226                         <xs:enumeration value="CY" />
    227                         <!-- CZECH REPUBLIC -->
    228                         <xs:enumeration value="CZ" />
    229                         <!-- DENMARK -->
    230                         <xs:enumeration value="DK" />
    231                         <!-- DJIBOUTI -->
    232                         <xs:enumeration value="DJ" />
    233                         <!-- DOMINICA -->
    234                         <xs:enumeration value="DM" />
    235                         <!-- DOMINICAN REPUBLIC -->
    236                         <xs:enumeration value="DO" />
    237                         <!-- ECUADOR -->
    238                         <xs:enumeration value="EC" />
    239                         <!-- EGYPT -->
    240                         <xs:enumeration value="EG" />
    241                         <!-- EL SALVADOR -->
    242                         <xs:enumeration value="SV" />
    243                         <!-- EQUATORIAL GUINEA -->
    244                         <xs:enumeration value="GQ" />
    245                         <!-- ERITREA -->
    246                         <xs:enumeration value="ER" />
    247                         <!-- ESTONIA -->
    248                         <xs:enumeration value="EE" />
    249                         <!-- ETHIOPIA -->
    250                         <xs:enumeration value="ET" />
    251                         <!-- FALKLAND ISLANDS (MALVINAS) -->
    252                         <xs:enumeration value="FK" />
    253                         <!-- FAROE ISLANDS -->
    254                         <xs:enumeration value="FO" />
    255                         <!-- FIJI -->
    256                         <xs:enumeration value="FJ" />
    257                         <!-- FINLAND -->
    258                         <xs:enumeration value="FI" />
    259                         <!-- FRANCE -->
    260                         <xs:enumeration value="FR" />
    261                         <!-- FRENCH GUIANA -->
    262                         <xs:enumeration value="GF" />
    263                         <!-- FRENCH POLYNESIA -->
    264                         <xs:enumeration value="PF" />
    265                         <!-- FRENCH SOUTHERN TERRITORIES -->
    266                         <xs:enumeration value="TF" />
    267                         <!-- GABON -->
    268                         <xs:enumeration value="GA" />
    269                         <!-- GAMBIA -->
    270                         <xs:enumeration value="GM" />
    271                         <!-- GEORGIA -->
    272                         <xs:enumeration value="GE" />
    273                         <!-- GERMANY -->
    274                         <xs:enumeration value="DE" />
    275                         <!-- GHANA -->
    276                         <xs:enumeration value="GH" />
    277                         <!-- GIBRALTAR -->
    278                         <xs:enumeration value="GI" />
    279                         <!-- GREECE -->
    280                         <xs:enumeration value="GR" />
    281                         <!-- GREENLAND -->
    282                         <xs:enumeration value="GL" />
    283                         <!-- GRENADA -->
    284                         <xs:enumeration value="GD" />
    285                         <!-- GUADELOUPE -->
    286                         <xs:enumeration value="GP" />
    287                         <!-- GUAM -->
    288                         <xs:enumeration value="GU" />
    289                         <!-- GUATEMALA -->
    290                         <xs:enumeration value="GT" />
    291                         <!-- GUERNSEY -->
    292                         <xs:enumeration value="GG" />
    293                         <!-- GUINEA -->
    294                         <xs:enumeration value="GN" />
    295                         <!-- GUINEA-BISSAU -->
    296                         <xs:enumeration value="GW" />
    297                         <!-- GUYANA -->
    298                         <xs:enumeration value="GY" />
    299                         <!-- HAITI -->
    300                         <xs:enumeration value="HT" />
    301                         <!-- HEARD ISLAND AND MCDONALD ISLANDS -->
    302                         <xs:enumeration value="HM" />
    303                         <!-- HOLY SEE (VATICAN CITY STATE) -->
    304                         <xs:enumeration value="VA" />
    305                         <!-- HONDURAS -->
    306                         <xs:enumeration value="HN" />
    307                         <!-- HONG KONG -->
    308                         <xs:enumeration value="HK" />
    309                         <!-- HUNGARY -->
    310                         <xs:enumeration value="HU" />
    311                         <!-- ICELAND -->
    312                         <xs:enumeration value="IS" />
    313                         <!-- INDIA -->
    314                         <xs:enumeration value="IN" />
    315                         <!-- INDONESIA -->
    316                         <xs:enumeration value="ID" />
    317                         <!-- IRAN, ISLAMIC REPUBLIC OF -->
    318                         <xs:enumeration value="IR" />
    319                         <!-- IRAQ -->
    320                         <xs:enumeration value="IQ" />
    321                         <!-- IRELAND -->
    322                         <xs:enumeration value="IE" />
    323                         <!-- ISLE OF MAN -->
    324                         <xs:enumeration value="IM" />
    325                         <!-- ISRAEL -->
    326                         <xs:enumeration value="IL" />
    327                         <!-- ITALY -->
    328                         <xs:enumeration value="IT" />
    329                         <!-- JAMAICA -->
    330                         <xs:enumeration value="JM" />
    331                         <!-- JAPAN -->
    332                         <xs:enumeration value="JP" />
    333                         <!-- JERSEY -->
    334                         <xs:enumeration value="JE" />
    335                         <!-- JORDAN -->
    336                         <xs:enumeration value="JO" />
    337                         <!-- KAZAKHSTAN -->
    338                         <xs:enumeration value="KZ" />
    339                         <!-- KENYA -->
    340                         <xs:enumeration value="KE" />
    341                         <!-- KIRIBATI -->
    342                         <xs:enumeration value="KI" />
    343                         <!-- KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF -->
    344                         <xs:enumeration value="KP" />
    345                         <!-- KOREA, REPUBLIC OF -->
    346                         <xs:enumeration value="KR" />
    347                         <!-- KUWAIT -->
    348                         <xs:enumeration value="KW" />
    349                         <!-- KYRGYZSTAN -->
    350                         <xs:enumeration value="KG" />
    351                         <!-- LAO PEOPLE'S DEMOCRATIC REPUBLIC -->
    352                         <xs:enumeration value="LA" />
    353                         <!-- LATVIA -->
    354                         <xs:enumeration value="LV" />
    355                         <!-- LEBANON -->
    356                         <xs:enumeration value="LB" />
    357                         <!-- LESOTHO -->
    358                         <xs:enumeration value="LS" />
    359                         <!-- LIBERIA -->
    360                         <xs:enumeration value="LR" />
    361                         <!-- LIBYAN ARAB JAMAHIRIYA -->
    362                         <xs:enumeration value="LY" />
    363                         <!-- LIECHTENSTEIN -->
    364                         <xs:enumeration value="LI" />
    365                         <!-- LITHUANIA -->
    366                         <xs:enumeration value="LT" />
    367                         <!-- LUXEMBOURG -->
    368                         <xs:enumeration value="LU" />
    369                         <!-- MACAO -->
    370                         <xs:enumeration value="MO" />
    371                         <!-- MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF -->
    372                         <xs:enumeration value="MK" />
    373                         <!-- MADAGASCAR -->
    374                         <xs:enumeration value="MG" />
    375                         <!-- MALAWI -->
    376                         <xs:enumeration value="MW" />
    377                         <!-- MALAYSIA -->
    378                         <xs:enumeration value="MY" />
    379                         <!-- MALDIVES -->
    380                         <xs:enumeration value="MV" />
    381                         <!-- MALI -->
    382                         <xs:enumeration value="ML" />
    383                         <!-- MALTA -->
    384                         <xs:enumeration value="MT" />
    385                         <!-- MARSHALL ISLANDS -->
    386                         <xs:enumeration value="MH" />
    387                         <!-- MARTINIQUE -->
    388                         <xs:enumeration value="MQ" />
    389                         <!-- MAURITANIA -->
    390                         <xs:enumeration value="MR" />
    391                         <!-- MAURITIUS -->
    392                         <xs:enumeration value="MU" />
    393                         <!-- MAYOTTE -->
    394                         <xs:enumeration value="YT" />
    395                         <!-- MEXICO -->
    396                         <xs:enumeration value="MX" />
    397                         <!-- MICRONESIA, FEDERATED STATES OF -->
    398                         <xs:enumeration value="FM" />
    399                         <!-- MOLDOVA, REPUBLIC OF -->
    400                         <xs:enumeration value="MD" />
    401                         <!-- MONACO -->
    402                         <xs:enumeration value="MC" />
    403                         <!-- MONGOLIA -->
    404                         <xs:enumeration value="MN" />
    405                         <!-- MONTENEGRO -->
    406                         <xs:enumeration value="ME" />
    407                         <!-- MONTSERRAT -->
    408                         <xs:enumeration value="MS" />
    409                         <!-- MOROCCO -->
    410                         <xs:enumeration value="MA" />
    411                         <!-- MOZAMBIQUE -->
    412                         <xs:enumeration value="MZ" />
    413                         <!-- MYANMAR -->
    414                         <xs:enumeration value="MM" />
    415                         <!-- NAMIBIA -->
    416                         <xs:enumeration value="NA" />
    417                         <!-- NAURU -->
    418                         <xs:enumeration value="NR" />
    419                         <!-- NEPAL -->
    420                         <xs:enumeration value="NP" />
    421                         <!-- NETHERLANDS -->
    422                         <xs:enumeration value="NL" />
    423                         <!-- NEW CALEDONIA -->
    424                         <xs:enumeration value="NC" />
    425                         <!-- NEW ZEALAND -->
    426                         <xs:enumeration value="NZ" />
    427                         <!-- NICARAGUA -->
    428                         <xs:enumeration value="NI" />
    429                         <!-- NIGER -->
    430                         <xs:enumeration value="NE" />
    431                         <!-- NIGERIA -->
    432                         <xs:enumeration value="NG" />
    433                         <!-- NIUE -->
    434                         <xs:enumeration value="NU" />
    435                         <!-- NORFOLK ISLAND -->
    436                         <xs:enumeration value="NF" />
    437                         <!-- NORTHERN MARIANA ISLANDS -->
    438                         <xs:enumeration value="MP" />
    439                         <!-- NORWAY -->
    440                         <xs:enumeration value="NO" />
    441                         <!-- OMAN -->
    442                         <xs:enumeration value="OM" />
    443                         <!-- PAKISTAN -->
    444                         <xs:enumeration value="PK" />
    445                         <!-- PALAU -->
    446                         <xs:enumeration value="PW" />
    447                         <!-- PALESTINIAN TERRITORY, OCCUPIED -->
    448                         <xs:enumeration value="PS" />
    449                         <!-- PANAMA -->
    450                         <xs:enumeration value="PA" />
    451                         <!-- PAPUA NEW GUINEA -->
    452                         <xs:enumeration value="PG" />
    453                         <!-- PARAGUAY -->
    454                         <xs:enumeration value="PY" />
    455                         <!-- PERU -->
    456                         <xs:enumeration value="PE" />
    457                         <!-- PHILIPPINES -->
    458                         <xs:enumeration value="PH" />
    459                         <!-- PITCAIRN -->
    460                         <xs:enumeration value="PN" />
    461                         <!-- POLAND -->
    462                         <xs:enumeration value="PL" />
    463                         <!-- PORTUGAL -->
    464                         <xs:enumeration value="PT" />
    465                         <!-- PUERTO RICO -->
    466                         <xs:enumeration value="PR" />
    467                         <!-- QATAR -->
    468                         <xs:enumeration value="QA" />
    469                         <!-- RÉUNION -->
    470                         <xs:enumeration value="RE" />
    471                         <!-- ROMANIA -->
    472                         <xs:enumeration value="RO" />
    473                         <!-- RUSSIAN FEDERATION -->
    474                         <xs:enumeration value="RU" />
    475                         <!-- RWANDA -->
    476                         <xs:enumeration value="RW" />
    477                         <!-- SAINT BARTHÉLEMY -->
    478                         <xs:enumeration value="BL" />
    479                         <!-- SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA -->
    480                         <xs:enumeration value="SH" />
    481                         <!-- SAINT KITTS AND NEVIS -->
    482                         <xs:enumeration value="KN" />
    483                         <!-- SAINT LUCIA -->
    484                         <xs:enumeration value="LC" />
    485                         <!-- SAINT MARTIN (FRENCH PART) -->
    486                         <xs:enumeration value="MF" />
    487                         <!-- SAINT PIERRE AND MIQUELON -->
    488                         <xs:enumeration value="PM" />
    489                         <!-- SAINT VINCENT AND THE GRENADINES -->
    490                         <xs:enumeration value="VC" />
    491                         <!-- SAMOA -->
    492                         <xs:enumeration value="WS" />
    493                         <!-- SAN MARINO -->
    494                         <xs:enumeration value="SM" />
    495                         <!-- SAO TOME AND PRINCIPE -->
    496                         <xs:enumeration value="ST" />
    497                         <!-- SAUDI ARABIA -->
    498                         <xs:enumeration value="SA" />
    499                         <!-- SENEGAL -->
    500                         <xs:enumeration value="SN" />
    501                         <!-- SERBIA -->
    502                         <xs:enumeration value="RS" />
    503                         <!-- SEYCHELLES -->
    504                         <xs:enumeration value="SC" />
    505                         <!-- SIERRA LEONE -->
    506                         <xs:enumeration value="SL" />
    507                         <!-- SINGAPORE -->
    508                         <xs:enumeration value="SG" />
    509                         <!-- SINT MAARTEN (DUTCH PART) -->
    510                         <xs:enumeration value="SX" />
    511                         <!-- SLOVAKIA -->
    512                         <xs:enumeration value="SK" />
    513                         <!-- SLOVENIA -->
    514                         <xs:enumeration value="SI" />
    515                         <!-- SOLOMON ISLANDS -->
    516                         <xs:enumeration value="SB" />
    517                         <!-- SOMALIA -->
    518                         <xs:enumeration value="SO" />
    519                         <!-- SOUTH AFRICA -->
    520                         <xs:enumeration value="ZA" />
    521                         <!-- SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS -->
    522                         <xs:enumeration value="GS" />
    523                         <!-- SOUTH SUDAN -->
    524                         <xs:enumeration value="SS" />
    525                         <!-- SPAIN -->
    526                         <xs:enumeration value="ES" />
    527                         <!-- SRI LANKA -->
    528                         <xs:enumeration value="LK" />
    529                         <!-- SUDAN -->
    530                         <xs:enumeration value="SD" />
    531                         <!-- SURINAME -->
    532                         <xs:enumeration value="SR" />
    533                         <!-- SVALBARD AND JAN MAYEN -->
    534                         <xs:enumeration value="SJ" />
    535                         <!-- SWAZILAND -->
    536                         <xs:enumeration value="SZ" />
    537                         <!-- SWEDEN -->
    538                         <xs:enumeration value="SE" />
    539                         <!-- SWITZERLAND -->
    540                         <xs:enumeration value="CH" />
    541                         <!-- SYRIAN ARAB REPUBLIC -->
    542                         <xs:enumeration value="SY" />
    543                         <!-- TAIWAN, PROVINCE OF CHINA -->
    544                         <xs:enumeration value="TW" />
    545                         <!-- TAJIKISTAN -->
    546                         <xs:enumeration value="TJ" />
    547                         <!-- TANZANIA, UNITED REPUBLIC OF -->
    548                         <xs:enumeration value="TZ" />
    549                         <!-- THAILAND -->
    550                         <xs:enumeration value="TH" />
    551                         <!-- TIMOR-LESTE -->
    552                         <xs:enumeration value="TL" />
    553                         <!-- TOGO -->
    554                         <xs:enumeration value="TG" />
    555                         <!-- TOKELAU -->
    556                         <xs:enumeration value="TK" />
    557                         <!-- TONGA -->
    558                         <xs:enumeration value="TO" />
    559                         <!-- TRINIDAD AND TOBAGO -->
    560                         <xs:enumeration value="TT" />
    561                         <!-- TUNISIA -->
    562                         <xs:enumeration value="TN" />
    563                         <!-- TURKEY -->
    564                         <xs:enumeration value="TR" />
    565                         <!-- TURKMENISTAN -->
    566                         <xs:enumeration value="TM" />
    567                         <!-- TURKS AND CAICOS ISLANDS -->
    568                         <xs:enumeration value="TC" />
    569                         <!-- TUVALU -->
    570                         <xs:enumeration value="TV" />
    571                         <!-- UGANDA -->
    572                         <xs:enumeration value="UG" />
    573                         <!-- UKRAINE -->
    574                         <xs:enumeration value="UA" />
    575                         <!-- UNITED ARAB EMIRATES -->
    576                         <xs:enumeration value="AE" />
    577                         <!-- UNITED KINGDOM -->
    578                         <xs:enumeration value="GB" />
    579                         <!-- UNITED STATES -->
    580                         <xs:enumeration value="US" />
    581                         <!-- UNITED STATES MINOR OUTLYING ISLANDS -->
    582                         <xs:enumeration value="UM" />
    583                         <!-- URUGUAY -->
    584                         <xs:enumeration value="UY" />
    585                         <!-- UZBEKISTAN -->
    586                         <xs:enumeration value="UZ" />
    587                         <!-- VANUATU -->
    588                         <xs:enumeration value="VU" />
    589                         <!-- VENEZUELA, BOLIVARIAN REPUBLIC OF -->
    590                         <xs:enumeration value="VE" />
    591                         <!-- VIET NAM -->
    592                         <xs:enumeration value="VN" />
    593                         <!-- VIRGIN ISLANDS, BRITISH -->
    594                         <xs:enumeration value="VG" />
    595                         <!-- VIRGIN ISLANDS, U.S. -->
    596                         <xs:enumeration value="VI" />
    597                         <!-- WALLIS AND FUTUNA -->
    598                         <xs:enumeration value="WF" />
    599                         <!-- WESTERN SAHARA -->
    600                         <xs:enumeration value="EH" />
    601                         <!-- YEMEN -->
    602                         <xs:enumeration value="YE" />
    603                         <!-- ZAMBIA -->
    604                         <xs:enumeration value="ZM" />
    605                         <!-- ZIMBABWE -->
    606                         <xs:enumeration value="ZW" />
    607                 </xs:restriction>
    608         </xs:simpleType>
    609 
    610         <xs:complexType name="imagery">
    611                 <xs:sequence>
    612                         <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
    613                                 <xs:complexType>
    614                                         <!-- this is actually not fully correct, but XSD does not allow multiple time the
    615                                                 same argument in one xs:all, so this sequence/choice combination, which
    616                                                 actually allows to much, only description and mirror can appear more than once! -->
    617                                         <xs:sequence>
    618                                                 <xs:choice minOccurs="1" maxOccurs="unbounded">
    619                                                         <!-- The name of the imagery source -->
    620                                                         <xs:element name="name" minOccurs="1" type="tns:name" />
    621                                                         <!-- A description of the imagery source -->
    622                                                         <xs:element name="description" minOccurs="0" type="tns:description" />
    623                                                         <!-- A unique id for the imagery source -->
    624                                                         <xs:element name="id" minOccurs="0" maxOccurs="1" type="tns:id" />
    625                                                         <!-- The type. Can be tms, wms and html. In addition, there are the special types bing and scanex
    626                                                                 with hardcoded behaviour. -->
    627                                                         <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
    628                                                         <!-- To define as default server for this type -->
    629                                                         <xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:boolean" />
    630                                                         <!-- The URL of the service. Can contain templates, e.g. {zoom} will be replaced by the current
    631                                                                 zoom level (see below). The list of services is a XML document, so the '&' character is represented by
    632                                                                 '&amp;'. Alternatively, the URL can be wrapped in a <![CDATA[...]]> section. -->
    633                                                         <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
    634                                                         <!-- A list of supported projections (inside <code> tags) -->
    635                                                         <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
    636                                                         <!-- TMS only: The minimum zoom level -->
    637                                                         <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    638                                                         <!-- TMS only: The maximum zoom level. For higher scales, the images of the maximum level is enlarged. -->
    639                                                         <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    640                                                         <!-- The area of use, e.g. <bounds min-lat='45.7' min-lon='5.9' max-lat='55.0' max-lon='17.3'/> -->
    641                                                         <xs:element name="bounds" minOccurs="0" maxOccurs="1" type="tns:bounds" />
    642                                                         <!-- 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. -->
    643                                                         <xs:element name="permission-ref" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
    644                                                         <!-- A link to an EULA text that has to be accepted by the user, before the imagery source is added. -->
    645                                                         <xs:element name="eula" minOccurs="0" maxOccurs="1" type="tns:eula" />
    646                                                         <!-- The attribution text to be shown all the time on the map. -->
    647                                                         <xs:element name="attribution-text" minOccurs="0" maxOccurs="1" type="tns:attribution-text" />
    648                                                         <!-- A link that is opened, when the user clicks on the attribution text -->
    649                                                         <xs:element name="attribution-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
    650                                                         <!-- A image that is displayed as attribution for the imagery background -->
    651                                                         <xs:element name="logo-image" minOccurs="0" maxOccurs="1" type="xs:string" />
    652                                                         <!-- A link that is opened, when the user clicks on the logo image -->
    653                                                         <xs:element name="logo-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
    654                                                         <!-- terms-of-use text (if missing, default tou text will be used, unless terms-of-use-url is also missing) -->
    655                                                         <xs:element name="terms-of-use-text" minOccurs="0" maxOccurs="1" type="xs:string" />
    656                                                         <!-- A link that is opened, when the user clicks on the terms-of-use text -->
    657                                                         <xs:element name="terms-of-use-url" minOccurs="0" maxOccurs="1" type="xs:string" />
    658                                                         <!-- The ISO 3166 country code -->
    659                                                         <xs:element name="country-code" minOccurs="0" maxOccurs="1" type="tns:iso3166" />
    660                                                         <!-- A base64-encoded image that is displayed as menu/toolbar icon -->
    661                                                         <xs:element name="icon" minOccurs="0" maxOccurs="1" type="xs:string" />
    662                                                         <!-- Date in form YYYY-MM-DD;YYYY-MM-DD (each element after first year is optional, a single - marks an unknown or open timespan like -;2015) -->
    663                                                         <xs:element name="date" minOccurs="0" maxOccurs="1" type="xs:string" />
    664                                                         <xs:element name="mirror" minOccurs="0">
    665                                                                 <xs:complexType>
    666                                                                         <xs:all>
    667                                                                                 <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
    668                                                                                 <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
    669                                                                                 <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
    670                                                                                 <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    671                                                                                 <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
    672                                                                                 <xs:element name="tile-size" minOccurs="0" maxOccurs="1" type="xs:positiveInteger" />
    673                                                                         </xs:all>
    674                                                                 </xs:complexType>
    675                                                         </xs:element>
    676                                                         <!-- list of HTTP headers, that indicate "no tile at this zoom level" situation -->
    677                                                         <xs:element name="no-tile-header" minOccurs="0" maxOccurs="unbounded">
    678                                                                 <xs:complexType>
    679                                                                         <xs:attribute name="name" type="xs:string" />
    680                                                                         <xs:attribute name="value" type="xs:string" />
    681                                                                 </xs:complexType>
    682                                                         </xs:element>
    683                                                         <!-- list of checksums, that indicate "no tile at this zoom level" situation -->
    684                                                         <xs:element name="no-tile-checksum" minOccurs="0" maxOccurs="unbounded">
    685                                                                 <xs:complexType>
    686                                                                         <xs:attribute name="type" type="xs:string" />
    687                                                                         <xs:attribute name="value" type="xs:string" />
    688                                                                 </xs:complexType>
    689                                                         </xs:element>
    690                                                         <!-- tile size provided by imagery source. Default - 256 -->
    691                                                         <xs:element name="tile-size" minOccurs="0" maxOccurs="1" type="xs:positiveInteger" />
    692                                                         <!--  HTTP headers that contain valuable information and that will be shown on "Shown Tile Info" dialog -->
    693                                                         <xs:element name="metadata-header" minOccurs="0" maxOccurs="unbounded">
    694                                                                 <xs:complexType>
    695                                                                         <xs:attribute name="header-name" type="xs:string" />
    696                                                                         <xs:attribute name="metadata-key" type="xs:string" />
    697                                                                 </xs:complexType>
    698                                                         </xs:element>
    699                                                         <!--  is imagery properly georeferenced (i.e. no need to check offsets). Defaults to false. Affects showing warnings. -->
    700                                                         <xs:element name="valid-georeference" minOccurs="0" maxOccurs="1" type="xs:boolean" />
    701                                                         <!-- does imagery server supports JOSM 4326 to 3857 reprojection and non-square queries. Affects showing warnings. -->
    702                                                         <xs:element name="epsg4326to3857Supported" minOccurs="0" maxOccurs="1" type="xs:boolean" />
    703                                                 </xs:choice>
    704                                         </xs:sequence>
    705                                         <xs:attribute name="last-check" type="xs:date" use="optional" />
    706                                         <xs:attribute name="eli-best" type="xs:boolean" use="optional" />
    707                                 </xs:complexType>
    708                         </xs:element>
    709                 </xs:sequence>
    710         </xs:complexType>
    711 
    712         <xs:element name="imagery" type="tns:imagery" />
     21        <xs:restriction base="xs:string">
     22            <xs:pattern value='[^\s/\\:*?"&lt;>|]+' />
     23        </xs:restriction>
     24    </xs:simpleType>
     25
     26    <xs:simpleType name="type">
     27        <xs:restriction base="xs:string">
     28            <xs:enumeration value="wms" />
     29            <xs:enumeration value="wms_endpoint" />
     30            <xs:enumeration value="wmts" />
     31            <xs:enumeration value="tms" />
     32            <xs:enumeration value="bing" />
     33            <xs:enumeration value="scanex" />
     34        </xs:restriction>
     35    </xs:simpleType>
     36
     37    <xs:simpleType name="zoom">
     38        <xs:restriction base="xs:integer">
     39            <xs:minInclusive value="0" />
     40            <xs:maxInclusive value="24" />
     41        </xs:restriction>
     42    </xs:simpleType>
     43
     44    <xs:complexType name="eula">
     45        <xs:simpleContent>
     46            <xs:extension base="xs:anyURI" >
     47                <xs:attribute name="mandatory" type="xs:boolean" use="optional" />
     48            </xs:extension>
     49        </xs:simpleContent>
     50    </xs:complexType>
     51
     52    <xs:complexType name="attribution-text">
     53        <xs:simpleContent>
     54            <xs:extension base="xs:string">
     55                <xs:attribute name="mandatory" type="xs:boolean" use="optional" />
     56            </xs:extension>
     57        </xs:simpleContent>
     58    </xs:complexType>
     59
     60    <xs:complexType name="description">
     61        <xs:simpleContent>
     62            <xs:extension base="xs:string">
     63                <xs:attribute name="lang" type="xs:string" use="required" />
     64            </xs:extension>
     65        </xs:simpleContent>
     66    </xs:complexType>
     67
     68    <xs:complexType name="name">
     69        <xs:simpleContent>
     70            <xs:extension base="xs:string">
     71                <xs:attribute name="lang" type="xs:string" use="optional" />
     72            </xs:extension>
     73        </xs:simpleContent>
     74    </xs:complexType>
     75
     76    <xs:complexType name="point">
     77        <xs:attribute name="lat" type="tns:latitude" use="required" />
     78        <xs:attribute name="lon" type="tns:longitude" use="required" />
     79    </xs:complexType>
     80
     81    <xs:complexType name="shape">
     82        <xs:sequence>
     83            <xs:element name="point" minOccurs="3" maxOccurs="999" type="tns:point" />
     84        </xs:sequence>
     85    </xs:complexType>
     86
     87    <xs:complexType name="bounds">
     88        <xs:sequence>
     89            <xs:element name="shape" minOccurs="0" maxOccurs="100" type="tns:shape" />
     90        </xs:sequence>
     91        <xs:attribute name="min-lat" type="tns:latitude" use="required" />
     92        <xs:attribute name="min-lon" type="tns:longitude" use="required" />
     93        <xs:attribute name="max-lat" type="tns:latitude" use="required" />
     94        <xs:attribute name="max-lon" type="tns:longitude" use="required" />
     95    </xs:complexType>
     96
     97    <xs:complexType name="projections">
     98        <xs:sequence>
     99            <!-- TODO: find an easy way to validate projections codes -->
     100            <xs:element name="code" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
     101        </xs:sequence>
     102    </xs:complexType>
     103
     104    <!-- ISO3166-1, taken from http://www.iso.org/iso/country_codes/iso_3166_code_lists.htm + "EU" for Europe -->
     105    <xs:simpleType name="iso3166">
     106        <xs:restriction base="xs:string">
     107            <!-- EUROPE (JOSM ONLY) -->
     108            <xs:enumeration value="EU" />
     109            <!-- AFGHANISTAN -->
     110            <xs:enumeration value="AF" />
     111            <!-- ÅLAND ISLANDS -->
     112            <xs:enumeration value="AX" />
     113            <!-- ALBANIA -->
     114            <xs:enumeration value="AL" />
     115            <!-- ALGERIA -->
     116            <xs:enumeration value="DZ" />
     117            <!-- AMERICAN SAMOA -->
     118            <xs:enumeration value="AS" />
     119            <!-- ANDORRA -->
     120            <xs:enumeration value="AD" />
     121            <!-- ANGOLA -->
     122            <xs:enumeration value="AO" />
     123            <!-- ANGUILLA -->
     124            <xs:enumeration value="AI" />
     125            <!-- ANTARCTICA -->
     126            <xs:enumeration value="AQ" />
     127            <!-- ANTIGUA AND BARBUDA -->
     128            <xs:enumeration value="AG" />
     129            <!-- ARGENTINA -->
     130            <xs:enumeration value="AR" />
     131            <!-- ARMENIA -->
     132            <xs:enumeration value="AM" />
     133            <!-- ARUBA -->
     134            <xs:enumeration value="AW" />
     135            <!-- AUSTRALIA -->
     136            <xs:enumeration value="AU" />
     137            <!-- AUSTRIA -->
     138            <xs:enumeration value="AT" />
     139            <!-- AZERBAIJAN -->
     140            <xs:enumeration value="AZ" />
     141            <!-- BAHAMAS -->
     142            <xs:enumeration value="BS" />
     143            <!-- BAHRAIN -->
     144            <xs:enumeration value="BH" />
     145            <!-- BANGLADESH -->
     146            <xs:enumeration value="BD" />
     147            <!-- BARBADOS -->
     148            <xs:enumeration value="BB" />
     149            <!-- BELARUS -->
     150            <xs:enumeration value="BY" />
     151            <!-- BELGIUM -->
     152            <xs:enumeration value="BE" />
     153            <!-- BELIZE -->
     154            <xs:enumeration value="BZ" />
     155            <!-- BENIN -->
     156            <xs:enumeration value="BJ" />
     157            <!-- BERMUDA -->
     158            <xs:enumeration value="BM" />
     159            <!-- BHUTAN -->
     160            <xs:enumeration value="BT" />
     161            <!-- BOLIVIA, PLURINATIONAL STATE OF -->
     162            <xs:enumeration value="BO" />
     163            <!-- BONAIRE, SINT EUSTATIUS AND SABA -->
     164            <xs:enumeration value="BQ" />
     165            <!-- BOSNIA AND HERZEGOVINA -->
     166            <xs:enumeration value="BA" />
     167            <!-- BOTSWANA -->
     168            <xs:enumeration value="BW" />
     169            <!-- BOUVET ISLAND -->
     170            <xs:enumeration value="BV" />
     171            <!-- BRAZIL -->
     172            <xs:enumeration value="BR" />
     173            <!-- BRITISH INDIAN OCEAN TERRITORY -->
     174            <xs:enumeration value="IO" />
     175            <!-- BRUNEI DARUSSALAM -->
     176            <xs:enumeration value="BN" />
     177            <!-- BULGARIA -->
     178            <xs:enumeration value="BG" />
     179            <!-- BURKINA FASO -->
     180            <xs:enumeration value="BF" />
     181            <!-- BURUNDI -->
     182            <xs:enumeration value="BI" />
     183            <!-- CAMBODIA -->
     184            <xs:enumeration value="KH" />
     185            <!-- CAMEROON -->
     186            <xs:enumeration value="CM" />
     187            <!-- CANADA -->
     188            <xs:enumeration value="CA" />
     189            <!-- CAPE VERDE -->
     190            <xs:enumeration value="CV" />
     191            <!-- CAYMAN ISLANDS -->
     192            <xs:enumeration value="KY" />
     193            <!-- CENTRAL AFRICAN REPUBLIC -->
     194            <xs:enumeration value="CF" />
     195            <!-- CHAD -->
     196            <xs:enumeration value="TD" />
     197            <!-- CHILE -->
     198            <xs:enumeration value="CL" />
     199            <!-- CHINA -->
     200            <xs:enumeration value="CN" />
     201            <!-- CHRISTMAS ISLAND -->
     202            <xs:enumeration value="CX" />
     203            <!-- COCOS (KEELING) ISLANDS -->
     204            <xs:enumeration value="CC" />
     205            <!-- COLOMBIA -->
     206            <xs:enumeration value="CO" />
     207            <!-- COMOROS -->
     208            <xs:enumeration value="KM" />
     209            <!-- CONGO -->
     210            <xs:enumeration value="CG" />
     211            <!-- CONGO, THE DEMOCRATIC REPUBLIC OF THE -->
     212            <xs:enumeration value="CD" />
     213            <!-- COOK ISLANDS -->
     214            <xs:enumeration value="CK" />
     215            <!-- COSTA RICA -->
     216            <xs:enumeration value="CR" />
     217            <!-- CÔTE D'IVOIRE -->
     218            <xs:enumeration value="CI" />
     219            <!-- CROATIA -->
     220            <xs:enumeration value="HR" />
     221            <!-- CUBA -->
     222            <xs:enumeration value="CU" />
     223            <!-- CURAÇAO -->
     224            <xs:enumeration value="CW" />
     225            <!-- CYPRUS -->
     226            <xs:enumeration value="CY" />
     227            <!-- CZECH REPUBLIC -->
     228            <xs:enumeration value="CZ" />
     229            <!-- DENMARK -->
     230            <xs:enumeration value="DK" />
     231            <!-- DJIBOUTI -->
     232            <xs:enumeration value="DJ" />
     233            <!-- DOMINICA -->
     234            <xs:enumeration value="DM" />
     235            <!-- DOMINICAN REPUBLIC -->
     236            <xs:enumeration value="DO" />
     237            <!-- ECUADOR -->
     238            <xs:enumeration value="EC" />
     239            <!-- EGYPT -->
     240            <xs:enumeration value="EG" />
     241            <!-- EL SALVADOR -->
     242            <xs:enumeration value="SV" />
     243            <!-- EQUATORIAL GUINEA -->
     244            <xs:enumeration value="GQ" />
     245            <!-- ERITREA -->
     246            <xs:enumeration value="ER" />
     247            <!-- ESTONIA -->
     248            <xs:enumeration value="EE" />
     249            <!-- ETHIOPIA -->
     250            <xs:enumeration value="ET" />
     251            <!-- FALKLAND ISLANDS (MALVINAS) -->
     252            <xs:enumeration value="FK" />
     253            <!-- FAROE ISLANDS -->
     254            <xs:enumeration value="FO" />
     255            <!-- FIJI -->
     256            <xs:enumeration value="FJ" />
     257            <!-- FINLAND -->
     258            <xs:enumeration value="FI" />
     259            <!-- FRANCE -->
     260            <xs:enumeration value="FR" />
     261            <!-- FRENCH GUIANA -->
     262            <xs:enumeration value="GF" />
     263            <!-- FRENCH POLYNESIA -->
     264            <xs:enumeration value="PF" />
     265            <!-- FRENCH SOUTHERN TERRITORIES -->
     266            <xs:enumeration value="TF" />
     267            <!-- GABON -->
     268            <xs:enumeration value="GA" />
     269            <!-- GAMBIA -->
     270            <xs:enumeration value="GM" />
     271            <!-- GEORGIA -->
     272            <xs:enumeration value="GE" />
     273            <!-- GERMANY -->
     274            <xs:enumeration value="DE" />
     275            <!-- GHANA -->
     276            <xs:enumeration value="GH" />
     277            <!-- GIBRALTAR -->
     278            <xs:enumeration value="GI" />
     279            <!-- GREECE -->
     280            <xs:enumeration value="GR" />
     281            <!-- GREENLAND -->
     282            <xs:enumeration value="GL" />
     283            <!-- GRENADA -->
     284            <xs:enumeration value="GD" />
     285            <!-- GUADELOUPE -->
     286            <xs:enumeration value="GP" />
     287            <!-- GUAM -->
     288            <xs:enumeration value="GU" />
     289            <!-- GUATEMALA -->
     290            <xs:enumeration value="GT" />
     291            <!-- GUERNSEY -->
     292            <xs:enumeration value="GG" />
     293            <!-- GUINEA -->
     294            <xs:enumeration value="GN" />
     295            <!-- GUINEA-BISSAU -->
     296            <xs:enumeration value="GW" />
     297            <!-- GUYANA -->
     298            <xs:enumeration value="GY" />
     299            <!-- HAITI -->
     300            <xs:enumeration value="HT" />
     301            <!-- HEARD ISLAND AND MCDONALD ISLANDS -->
     302            <xs:enumeration value="HM" />
     303            <!-- HOLY SEE (VATICAN CITY STATE) -->
     304            <xs:enumeration value="VA" />
     305            <!-- HONDURAS -->
     306            <xs:enumeration value="HN" />
     307            <!-- HONG KONG -->
     308            <xs:enumeration value="HK" />
     309            <!-- HUNGARY -->
     310            <xs:enumeration value="HU" />
     311            <!-- ICELAND -->
     312            <xs:enumeration value="IS" />
     313            <!-- INDIA -->
     314            <xs:enumeration value="IN" />
     315            <!-- INDONESIA -->
     316            <xs:enumeration value="ID" />
     317            <!-- IRAN, ISLAMIC REPUBLIC OF -->
     318            <xs:enumeration value="IR" />
     319            <!-- IRAQ -->
     320            <xs:enumeration value="IQ" />
     321            <!-- IRELAND -->
     322            <xs:enumeration value="IE" />
     323            <!-- ISLE OF MAN -->
     324            <xs:enumeration value="IM" />
     325            <!-- ISRAEL -->
     326            <xs:enumeration value="IL" />
     327            <!-- ITALY -->
     328            <xs:enumeration value="IT" />
     329            <!-- JAMAICA -->
     330            <xs:enumeration value="JM" />
     331            <!-- JAPAN -->
     332            <xs:enumeration value="JP" />
     333            <!-- JERSEY -->
     334            <xs:enumeration value="JE" />
     335            <!-- JORDAN -->
     336            <xs:enumeration value="JO" />
     337            <!-- KAZAKHSTAN -->
     338            <xs:enumeration value="KZ" />
     339            <!-- KENYA -->
     340            <xs:enumeration value="KE" />
     341            <!-- KIRIBATI -->
     342            <xs:enumeration value="KI" />
     343            <!-- KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF -->
     344            <xs:enumeration value="KP" />
     345            <!-- KOREA, REPUBLIC OF -->
     346            <xs:enumeration value="KR" />
     347            <!-- KUWAIT -->
     348            <xs:enumeration value="KW" />
     349            <!-- KYRGYZSTAN -->
     350            <xs:enumeration value="KG" />
     351            <!-- LAO PEOPLE'S DEMOCRATIC REPUBLIC -->
     352            <xs:enumeration value="LA" />
     353            <!-- LATVIA -->
     354            <xs:enumeration value="LV" />
     355            <!-- LEBANON -->
     356            <xs:enumeration value="LB" />
     357            <!-- LESOTHO -->
     358            <xs:enumeration value="LS" />
     359            <!-- LIBERIA -->
     360            <xs:enumeration value="LR" />
     361            <!-- LIBYAN ARAB JAMAHIRIYA -->
     362            <xs:enumeration value="LY" />
     363            <!-- LIECHTENSTEIN -->
     364            <xs:enumeration value="LI" />
     365            <!-- LITHUANIA -->
     366            <xs:enumeration value="LT" />
     367            <!-- LUXEMBOURG -->
     368            <xs:enumeration value="LU" />
     369            <!-- MACAO -->
     370            <xs:enumeration value="MO" />
     371            <!-- MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF -->
     372            <xs:enumeration value="MK" />
     373            <!-- MADAGASCAR -->
     374            <xs:enumeration value="MG" />
     375            <!-- MALAWI -->
     376            <xs:enumeration value="MW" />
     377            <!-- MALAYSIA -->
     378            <xs:enumeration value="MY" />
     379            <!-- MALDIVES -->
     380            <xs:enumeration value="MV" />
     381            <!-- MALI -->
     382            <xs:enumeration value="ML" />
     383            <!-- MALTA -->
     384            <xs:enumeration value="MT" />
     385            <!-- MARSHALL ISLANDS -->
     386            <xs:enumeration value="MH" />
     387            <!-- MARTINIQUE -->
     388            <xs:enumeration value="MQ" />
     389            <!-- MAURITANIA -->
     390            <xs:enumeration value="MR" />
     391            <!-- MAURITIUS -->
     392            <xs:enumeration value="MU" />
     393            <!-- MAYOTTE -->
     394            <xs:enumeration value="YT" />
     395            <!-- MEXICO -->
     396            <xs:enumeration value="MX" />
     397            <!-- MICRONESIA, FEDERATED STATES OF -->
     398            <xs:enumeration value="FM" />
     399            <!-- MOLDOVA, REPUBLIC OF -->
     400            <xs:enumeration value="MD" />
     401            <!-- MONACO -->
     402            <xs:enumeration value="MC" />
     403            <!-- MONGOLIA -->
     404            <xs:enumeration value="MN" />
     405            <!-- MONTENEGRO -->
     406            <xs:enumeration value="ME" />
     407            <!-- MONTSERRAT -->
     408            <xs:enumeration value="MS" />
     409            <!-- MOROCCO -->
     410            <xs:enumeration value="MA" />
     411            <!-- MOZAMBIQUE -->
     412            <xs:enumeration value="MZ" />
     413            <!-- MYANMAR -->
     414            <xs:enumeration value="MM" />
     415            <!-- NAMIBIA -->
     416            <xs:enumeration value="NA" />
     417            <!-- NAURU -->
     418            <xs:enumeration value="NR" />
     419            <!-- NEPAL -->
     420            <xs:enumeration value="NP" />
     421            <!-- NETHERLANDS -->
     422            <xs:enumeration value="NL" />
     423            <!-- NEW CALEDONIA -->
     424            <xs:enumeration value="NC" />
     425            <!-- NEW ZEALAND -->
     426            <xs:enumeration value="NZ" />
     427            <!-- NICARAGUA -->
     428            <xs:enumeration value="NI" />
     429            <!-- NIGER -->
     430            <xs:enumeration value="NE" />
     431            <!-- NIGERIA -->
     432            <xs:enumeration value="NG" />
     433            <!-- NIUE -->
     434            <xs:enumeration value="NU" />
     435            <!-- NORFOLK ISLAND -->
     436            <xs:enumeration value="NF" />
     437            <!-- NORTHERN MARIANA ISLANDS -->
     438            <xs:enumeration value="MP" />
     439            <!-- NORWAY -->
     440            <xs:enumeration value="NO" />
     441            <!-- OMAN -->
     442            <xs:enumeration value="OM" />
     443            <!-- PAKISTAN -->
     444            <xs:enumeration value="PK" />
     445            <!-- PALAU -->
     446            <xs:enumeration value="PW" />
     447            <!-- PALESTINIAN TERRITORY, OCCUPIED -->
     448            <xs:enumeration value="PS" />
     449            <!-- PANAMA -->
     450            <xs:enumeration value="PA" />
     451            <!-- PAPUA NEW GUINEA -->
     452            <xs:enumeration value="PG" />
     453            <!-- PARAGUAY -->
     454            <xs:enumeration value="PY" />
     455            <!-- PERU -->
     456            <xs:enumeration value="PE" />
     457            <!-- PHILIPPINES -->
     458            <xs:enumeration value="PH" />
     459            <!-- PITCAIRN -->
     460            <xs:enumeration value="PN" />
     461            <!-- POLAND -->
     462            <xs:enumeration value="PL" />
     463            <!-- PORTUGAL -->
     464            <xs:enumeration value="PT" />
     465            <!-- PUERTO RICO -->
     466            <xs:enumeration value="PR" />
     467            <!-- QATAR -->
     468            <xs:enumeration value="QA" />
     469            <!-- RÉUNION -->
     470            <xs:enumeration value="RE" />
     471            <!-- ROMANIA -->
     472            <xs:enumeration value="RO" />
     473            <!-- RUSSIAN FEDERATION -->
     474            <xs:enumeration value="RU" />
     475            <!-- RWANDA -->
     476            <xs:enumeration value="RW" />
     477            <!-- SAINT BARTHÉLEMY -->
     478            <xs:enumeration value="BL" />
     479            <!-- SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA -->
     480            <xs:enumeration value="SH" />
     481            <!-- SAINT KITTS AND NEVIS -->
     482            <xs:enumeration value="KN" />
     483            <!-- SAINT LUCIA -->
     484            <xs:enumeration value="LC" />
     485            <!-- SAINT MARTIN (FRENCH PART) -->
     486            <xs:enumeration value="MF" />
     487            <!-- SAINT PIERRE AND MIQUELON -->
     488            <xs:enumeration value="PM" />
     489            <!-- SAINT VINCENT AND THE GRENADINES -->
     490            <xs:enumeration value="VC" />
     491            <!-- SAMOA -->
     492            <xs:enumeration value="WS" />
     493            <!-- SAN MARINO -->
     494            <xs:enumeration value="SM" />
     495            <!-- SAO TOME AND PRINCIPE -->
     496            <xs:enumeration value="ST" />
     497            <!-- SAUDI ARABIA -->
     498            <xs:enumeration value="SA" />
     499            <!-- SENEGAL -->
     500            <xs:enumeration value="SN" />
     501            <!-- SERBIA -->
     502            <xs:enumeration value="RS" />
     503            <!-- SEYCHELLES -->
     504            <xs:enumeration value="SC" />
     505            <!-- SIERRA LEONE -->
     506            <xs:enumeration value="SL" />
     507            <!-- SINGAPORE -->
     508            <xs:enumeration value="SG" />
     509            <!-- SINT MAARTEN (DUTCH PART) -->
     510            <xs:enumeration value="SX" />
     511            <!-- SLOVAKIA -->
     512            <xs:enumeration value="SK" />
     513            <!-- SLOVENIA -->
     514            <xs:enumeration value="SI" />
     515            <!-- SOLOMON ISLANDS -->
     516            <xs:enumeration value="SB" />
     517            <!-- SOMALIA -->
     518            <xs:enumeration value="SO" />
     519            <!-- SOUTH AFRICA -->
     520            <xs:enumeration value="ZA" />
     521            <!-- SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS -->
     522            <xs:enumeration value="GS" />
     523            <!-- SOUTH SUDAN -->
     524            <xs:enumeration value="SS" />
     525            <!-- SPAIN -->
     526            <xs:enumeration value="ES" />
     527            <!-- SRI LANKA -->
     528            <xs:enumeration value="LK" />
     529            <!-- SUDAN -->
     530            <xs:enumeration value="SD" />
     531            <!-- SURINAME -->
     532            <xs:enumeration value="SR" />
     533            <!-- SVALBARD AND JAN MAYEN -->
     534            <xs:enumeration value="SJ" />
     535            <!-- SWAZILAND -->
     536            <xs:enumeration value="SZ" />
     537            <!-- SWEDEN -->
     538            <xs:enumeration value="SE" />
     539            <!-- SWITZERLAND -->
     540            <xs:enumeration value="CH" />
     541            <!-- SYRIAN ARAB REPUBLIC -->
     542            <xs:enumeration value="SY" />
     543            <!-- TAIWAN, PROVINCE OF CHINA -->
     544            <xs:enumeration value="TW" />
     545            <!-- TAJIKISTAN -->
     546            <xs:enumeration value="TJ" />
     547            <!-- TANZANIA, UNITED REPUBLIC OF -->
     548            <xs:enumeration value="TZ" />
     549            <!-- THAILAND -->
     550            <xs:enumeration value="TH" />
     551            <!-- TIMOR-LESTE -->
     552            <xs:enumeration value="TL" />
     553            <!-- TOGO -->
     554            <xs:enumeration value="TG" />
     555            <!-- TOKELAU -->
     556            <xs:enumeration value="TK" />
     557            <!-- TONGA -->
     558            <xs:enumeration value="TO" />
     559            <!-- TRINIDAD AND TOBAGO -->
     560            <xs:enumeration value="TT" />
     561            <!-- TUNISIA -->
     562            <xs:enumeration value="TN" />
     563            <!-- TURKEY -->
     564            <xs:enumeration value="TR" />
     565            <!-- TURKMENISTAN -->
     566            <xs:enumeration value="TM" />
     567            <!-- TURKS AND CAICOS ISLANDS -->
     568            <xs:enumeration value="TC" />
     569            <!-- TUVALU -->
     570            <xs:enumeration value="TV" />
     571            <!-- UGANDA -->
     572            <xs:enumeration value="UG" />
     573            <!-- UKRAINE -->
     574            <xs:enumeration value="UA" />
     575            <!-- UNITED ARAB EMIRATES -->
     576            <xs:enumeration value="AE" />
     577            <!-- UNITED KINGDOM -->
     578            <xs:enumeration value="GB" />
     579            <!-- UNITED STATES -->
     580            <xs:enumeration value="US" />
     581            <!-- UNITED STATES MINOR OUTLYING ISLANDS -->
     582            <xs:enumeration value="UM" />
     583            <!-- URUGUAY -->
     584            <xs:enumeration value="UY" />
     585            <!-- UZBEKISTAN -->
     586            <xs:enumeration value="UZ" />
     587            <!-- VANUATU -->
     588            <xs:enumeration value="VU" />
     589            <!-- VENEZUELA, BOLIVARIAN REPUBLIC OF -->
     590            <xs:enumeration value="VE" />
     591            <!-- VIET NAM -->
     592            <xs:enumeration value="VN" />
     593            <!-- VIRGIN ISLANDS, BRITISH -->
     594            <xs:enumeration value="VG" />
     595            <!-- VIRGIN ISLANDS, U.S. -->
     596            <xs:enumeration value="VI" />
     597            <!-- WALLIS AND FUTUNA -->
     598            <xs:enumeration value="WF" />
     599            <!-- WESTERN SAHARA -->
     600            <xs:enumeration value="EH" />
     601            <!-- YEMEN -->
     602            <xs:enumeration value="YE" />
     603            <!-- ZAMBIA -->
     604            <xs:enumeration value="ZM" />
     605            <!-- ZIMBABWE -->
     606            <xs:enumeration value="ZW" />
     607        </xs:restriction>
     608    </xs:simpleType>
     609
     610    <xs:complexType name="imagery">
     611        <xs:sequence>
     612            <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
     613                <xs:complexType>
     614                    <!-- this is actually not fully correct, but XSD does not allow multiple time the
     615                        same argument in one xs:all, so this sequence/choice combination, which
     616                        actually allows to much, only description and mirror can appear more than once! -->
     617                    <xs:sequence>
     618                        <xs:choice minOccurs="1" maxOccurs="unbounded">
     619                            <!-- The name of the imagery source -->
     620                            <xs:element name="name" minOccurs="1" type="tns:name" />
     621                            <!-- A description of the imagery source -->
     622                            <xs:element name="description" minOccurs="0" type="tns:description" />
     623                            <!-- A unique id for the imagery source -->
     624                            <xs:element name="id" minOccurs="0" maxOccurs="1" type="tns:id" />
     625                            <!-- The type. Can be tms, wms and html. In addition, there are the special types bing and scanex
     626                                with hardcoded behaviour. -->
     627                            <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
     628                            <!-- To define as default server for this type -->
     629                            <xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:boolean" />
     630                            <!-- The URL of the service. Can contain templates, e.g. {zoom} will be replaced by the current
     631                                zoom level (see below). The list of services is a XML document, so the '&' character is represented by
     632                                '&amp;'. Alternatively, the URL can be wrapped in a <![CDATA[...]]> section. -->
     633                            <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
     634                            <!-- A list of supported projections (inside <code> tags) -->
     635                            <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
     636                            <!-- TMS only: The minimum zoom level -->
     637                            <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     638                            <!-- TMS only: The maximum zoom level. For higher scales, the images of the maximum level is enlarged. -->
     639                            <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     640                            <!-- The area of use, e.g. <bounds min-lat='45.7' min-lon='5.9' max-lat='55.0' max-lon='17.3'/> -->
     641                            <xs:element name="bounds" minOccurs="0" maxOccurs="1" type="tns:bounds" />
     642                            <!-- 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. -->
     643                            <xs:element name="permission-ref" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
     644                            <!-- A link to an EULA text that has to be accepted by the user, before the imagery source is added. -->
     645                            <xs:element name="eula" minOccurs="0" maxOccurs="1" type="tns:eula" />
     646                            <!-- The attribution text to be shown all the time on the map. -->
     647                            <xs:element name="attribution-text" minOccurs="0" maxOccurs="1" type="tns:attribution-text" />
     648                            <!-- A link that is opened, when the user clicks on the attribution text -->
     649                            <xs:element name="attribution-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
     650                            <!-- A image that is displayed as attribution for the imagery background -->
     651                            <xs:element name="logo-image" minOccurs="0" maxOccurs="1" type="xs:string" />
     652                            <!-- A link that is opened, when the user clicks on the logo image -->
     653                            <xs:element name="logo-url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
     654                            <!-- terms-of-use text (if missing, default tou text will be used, unless terms-of-use-url is also missing) -->
     655                            <xs:element name="terms-of-use-text" minOccurs="0" maxOccurs="1" type="xs:string" />
     656                            <!-- A link that is opened, when the user clicks on the terms-of-use text -->
     657                            <xs:element name="terms-of-use-url" minOccurs="0" maxOccurs="1" type="xs:string" />
     658                            <!-- The ISO 3166 country code -->
     659                            <xs:element name="country-code" minOccurs="0" maxOccurs="1" type="tns:iso3166" />
     660                            <!-- A base64-encoded image that is displayed as menu/toolbar icon -->
     661                            <xs:element name="icon" minOccurs="0" maxOccurs="1" type="xs:string" />
     662                            <!-- Date in form YYYY-MM-DD;YYYY-MM-DD (each element after first year is optional, a single - marks an unknown or open timespan like -;2015) -->
     663                            <xs:element name="date" minOccurs="0" maxOccurs="1" type="xs:string" />
     664                            <xs:element name="mirror" minOccurs="0">
     665                                <xs:complexType>
     666                                    <xs:all>
     667                                        <xs:element name="type" minOccurs="1" maxOccurs="1" type="tns:type" />
     668                                        <xs:element name="url" minOccurs="1" maxOccurs="1" type="xs:string" />
     669                                        <xs:element name="projections" minOccurs="0" maxOccurs="1" type="tns:projections" />
     670                                        <xs:element name="min-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     671                                        <xs:element name="max-zoom" minOccurs="0" maxOccurs="1" type="tns:zoom" />
     672                                        <xs:element name="tile-size" minOccurs="0" maxOccurs="1" type="xs:positiveInteger" />
     673                                    </xs:all>
     674                                </xs:complexType>
     675                            </xs:element>
     676                            <!-- list of HTTP headers, that indicate "no tile at this zoom level" situation -->
     677                            <xs:element name="no-tile-header" minOccurs="0" maxOccurs="unbounded">
     678                                <xs:complexType>
     679                                    <xs:attribute name="name" type="xs:string" />
     680                                    <xs:attribute name="value" type="xs:string" />
     681                                </xs:complexType>
     682                            </xs:element>
     683                            <!-- list of checksums, that indicate "no tile at this zoom level" situation -->
     684                            <xs:element name="no-tile-checksum" minOccurs="0" maxOccurs="unbounded">
     685                                <xs:complexType>
     686                                    <xs:attribute name="type" type="xs:string" />
     687                                    <xs:attribute name="value" type="xs:string" />
     688                                </xs:complexType>
     689                            </xs:element>
     690                            <!-- tile size provided by imagery source. Default - 256 -->
     691                            <xs:element name="tile-size" minOccurs="0" maxOccurs="1" type="xs:positiveInteger" />
     692                            <!--  HTTP headers that contain valuable information and that will be shown on "Shown Tile Info" dialog -->
     693                            <xs:element name="metadata-header" minOccurs="0" maxOccurs="unbounded">
     694                                <xs:complexType>
     695                                    <xs:attribute name="header-name" type="xs:string" />
     696                                    <xs:attribute name="metadata-key" type="xs:string" />
     697                                </xs:complexType>
     698                            </xs:element>
     699                            <!--  is imagery properly georeferenced (i.e. no need to check offsets). Defaults to false. Affects showing warnings. -->
     700                            <xs:element name="valid-georeference" minOccurs="0" maxOccurs="1" type="xs:boolean" />
     701                            <!-- does imagery server supports JOSM 4326 to 3857 reprojection and non-square queries. Affects showing warnings. -->
     702                            <xs:element name="epsg4326to3857Supported" minOccurs="0" maxOccurs="1" type="xs:boolean" />
     703                        </xs:choice>
     704                    </xs:sequence>
     705                    <xs:attribute name="last-check" type="xs:date" use="optional" />
     706                    <xs:attribute name="eli-best" type="xs:boolean" use="optional" />
     707                </xs:complexType>
     708            </xs:element>
     709        </xs:sequence>
     710    </xs:complexType>
     711
     712    <xs:element name="imagery" type="tns:imagery" />
    713713</xs:schema>
  • trunk/data/tagging-preset.xsd

    r8877 r11812  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://josm.openstreetmap.de/tagging-preset-1.0"
    3         xmlns:tns="http://josm.openstreetmap.de/tagging-preset-1.0"
    4         elementFormDefault="qualified">
    5 
    6         <!-- Localized attributes (for example de.description are not supported
    7                 by xsd, so every element needs <anyAttribute/> To cover at least some common
    8                 errors, elements have specified prohibited attributes -->
    9 
    10         <element name="annotations" type="tns:root" />
    11         <element name="presets" type="tns:root">
    12                 <unique name="chunk_id">
    13                         <selector xpath=".//tns:chunk"/>
    14                         <field xpath="@id"/>
    15                 </unique>
    16                 <keyref name="chunk_ref" refer="tns:chunk_id">
    17                         <selector xpath=".//tns:reference"/>
    18                         <field xpath="@ref"/>
    19                 </keyref>
    20         </element>
    21 
    22         <complexType name="root">
    23                 <complexContent>
    24                         <extension base="tns:group-parent">
    25                                 <attribute name="author" type="string" />
    26                                 <attribute name="version" type="string" />
    27                                 <attribute name="shortdescription" type="string" />
    28                                 <attribute name="description" type="string" />
    29                                 <attribute name="link" type="string" />
    30                                 <attribute name="baselanguage" type="string" />
    31 
    32                                 <anyAttribute processContents="skip" />
    33                         </extension>
    34                 </complexContent>
    35         </complexType>
    36 
    37         <complexType name="group-parent">
    38                 <sequence>
    39                         <choice minOccurs="1" maxOccurs="unbounded">
    40                                 <element name="chunk" type="tns:chunk"/>
    41                                 <element name="group" type="tns:group" />
    42                                 <element name="item" type="tns:item" />
    43                                 <element name="separator" type="tns:separator" />
    44                         </choice>
    45                 </sequence>
    46                 <attribute name="icon" type="string" />
    47 
    48                 <attribute name="type" use="prohibited" />
    49                 <attribute name="text" use="prohibited" />
    50                 <anyAttribute processContents="skip" />
    51         </complexType>
    52 
    53         <complexType name="group">
    54                 <complexContent>
    55                         <extension base="tns:group-parent">
    56                                 <attribute name="name" type="string" use="required" />
    57                         </extension>
    58                 </complexContent>
    59         </complexType>
    60 
    61         <complexType name="separator" />
    62 
    63         <complexType name="item">
    64                 <sequence>
    65                         <choice minOccurs="0" maxOccurs="unbounded">
    66                                 <group ref="tns:optional_elements" />
    67                                 <element name="key" type="tns:key" />
    68                                 <element name="optional" type="tns:optional" minOccurs="0" />
    69                         </choice>
    70                         <element name="roles" type="tns:roles" minOccurs="0" maxOccurs="1" />
    71                 </sequence>
    72                 <attribute name="name" type="string" use="required" />
    73                 <attribute name="icon" type="string" />
    74                 <attribute name="type" type="string" />
    75                 <attribute name="name_template" type="string"/>
    76                 <attribute name="name_template_filter" type="string"/>
    77                 <attribute name="preset_name_label" type="boolean"/>
    78 
    79                 <attribute name="text" use="prohibited" />
    80                 <anyAttribute processContents="skip" />
    81         </complexType>
    82 
    83         <complexType name="optional">
    84                 <group ref="tns:optional_elements" maxOccurs="unbounded" />
    85                 <attribute name="text" type="string" />
    86                 <attribute name="text_context" type="string" />
    87         </complexType>
    88 
    89         <complexType name="chunk">
    90                 <choice minOccurs="1" maxOccurs="1">
    91                         <sequence>
    92                                 <choice minOccurs="1" maxOccurs="unbounded">
    93                                         <group ref="tns:optional_elements" />
    94                                         <element name="key" type="tns:key" />
    95                                         <element name="optional" type="tns:optional" minOccurs="0" />
    96                                 </choice>
    97                         </sequence>
    98                         <sequence>
    99                                 <!-- Cannot use tns:list_elements here because reference is present both in optional_elements and list_elements
    100                                 so it violates cos-nonambig: Unique Particle Attribution :
    101                                 <group ref="tns:list_elements" minOccurs="1" maxOccurs="unbounded" />-->
    102                                 <element name="list_entry" type="tns:list_entry" minOccurs="1" maxOccurs="unbounded" />
    103                         </sequence>
    104                 </choice>
    105                 <attribute name="id" type="ID" use="required" />
    106         </complexType>
    107 
    108         <complexType name="reference">
    109                 <attribute name="ref" type="IDREF" use="required" />
    110         </complexType>
    111 
    112         <group name="optional_elements">
    113                 <choice>
    114                         <element name="label" type="tns:label" />
    115                         <element name="space" type="tns:space" />
    116                         <element name="link" type="tns:link" />
    117                         <element name="preset_link" type="tns:preset_link" />
    118                         <element name="text" type="tns:text" />
    119                         <element name="combo" type="tns:combo" />
    120                         <element name="multiselect" type="tns:multiselect" />
    121                         <element name="checkgroup" type="tns:checkgroup" />
    122                         <element name="check" type="tns:check" />
    123                         <element name="item_separator" type="tns:separator" />
    124                         <element name="reference" type="tns:reference" />
    125                 </choice>
    126         </group>
    127 
    128         <group name="list_elements">
    129                 <choice>
    130                         <element name="list_entry" type="tns:list_entry" />
    131                         <element name="reference" type="tns:reference" />
    132                 </choice>
    133         </group>
    134 
    135         <complexType name="key">
    136                 <attribute name="key" type="string" use="required" />
    137                 <attribute name="value" type="string" />
    138                 <attribute name="match" type="string" />
    139         </complexType>
    140 
    141         <complexType name="link">
    142                 <attribute name="href" type="string" use="required" />
    143                 <attribute name="text" type="string" />
    144                 <attribute name="text_context" type="string" />
    145 
    146                 <attribute name="name" use="prohibited" />
    147                 <anyAttribute processContents="skip" />
    148         </complexType>
    149 
    150         <complexType name="preset_link">
    151                 <attribute name="preset_name" type="string" use="required" />
    152                 <attribute name="name" use="prohibited" />
    153         </complexType>
    154 
    155         <complexType name="label">
    156                 <attribute name="text" type="string" use="required" />
    157                 <attribute name="text_context" type="string" />
    158                 <attribute name="icon" type="string" />
    159                 <attribute name="icon_size" type="integer" />
    160 
    161                 <attribute name="name" use="prohibited" />
    162                 <anyAttribute processContents="skip" />
    163         </complexType>
    164 
    165         <complexType name="space" />
    166 
    167         <complexType name="text">
    168                 <attribute name="key" type="string" use="required" />
    169                 <attribute name="text" type="string" />
    170                 <attribute name="text_context" type="string" />
    171                 <attribute name="default" type="string" />
    172                 <attribute name="use_last_as_default" type="tns:last_default" />
    173                 <attribute name="auto_increment" type="string" />
    174                 <attribute name="match" type="tns:match" />
    175                 <attribute name="length" type="positiveInteger" />
    176                 <attribute name="alternative_autocomplete_keys" type="string" />
    177 
    178                 <attribute name="type" use="prohibited" />
    179                 <attribute name="name" use="prohibited" />
    180                 <attribute name="value" use="prohibited" />
    181                 <attribute name="values" use="prohibited" />
    182                 <anyAttribute processContents="skip" />
    183         </complexType>
    184 
    185         <complexType name="list_entry">
    186                 <attribute name="value" type="string" use="required" />
    187                 <attribute name="value_context" type="string" />
    188                 <attribute name="display_value" type="string" />
    189                 <attribute name="short_description" type="string" />
    190                 <attribute name="icon" type="string" />
    191                 <attribute name="icon_size" type="integer" />
    192                 <anyAttribute processContents="skip" />
    193         </complexType>
    194 
    195         <complexType name="combo">
    196                 <!-- use either list_entry's or a combination of values/display_values -->
    197                 <sequence>
    198                         <group ref="tns:list_elements" minOccurs="0" maxOccurs="unbounded" />
    199                 </sequence>
    200                 <attribute name="key" type="string" use="required" />
    201                 <attribute name="text" type="string" />
    202                 <attribute name="text_context" type="string" />
    203                 <attribute name="values" type="string" />
    204                 <attribute name="values_from" type="string" />
    205                 <attribute name="values_context" type="string" />
    206                 <attribute name="values_no_i18n" type="boolean" />
    207                 <attribute name="values_sort" type="boolean" />
    208                 <attribute name="display_values" type="string" />
    209                 <attribute name="values_searchable" type="boolean" />
    210                 <attribute name="default" type="string" />
    211                 <attribute name="use_last_as_default" type="tns:last_default" />
    212                 <attribute name="delimiter" type="string" />
    213                 <attribute name="editable" type="boolean" />
    214                 <attribute name="match" type="tns:match" />
    215                 <attribute name="length" type="positiveInteger" />
    216 
    217                 <attribute name="type" use="prohibited" />
    218                 <attribute name="value" use="prohibited" />
    219                 <attribute name="name" use="prohibited" />
    220                 <attribute name="delete-if-empty" use="prohibited" />
    221                 <attribute name="display-values" use="prohibited" />
    222                 <anyAttribute processContents="skip" />
    223         </complexType>
    224 
    225         <complexType name="multiselect">
    226                 <!-- use either list_entry's or a combination of values/display_values -->
    227                 <sequence>
    228                         <group ref="tns:list_elements" minOccurs="0" maxOccurs="unbounded" />
    229                 </sequence>
    230                 <attribute name="key" type="string" use="required" />
    231                 <attribute name="text" type="string" />
    232                 <attribute name="text_context" type="string" />
    233                 <attribute name="values" type="string" />
    234                 <attribute name="values_from" type="string" />
    235                 <attribute name="values_context" type="string" />
    236                 <attribute name="display_values" type="string" />
    237                 <attribute name="values_searchable" type="boolean" />
    238                 <attribute name="default" type="string" />
    239                 <attribute name="use_last_as_default" type="tns:last_default" />
    240                 <attribute name="delimiter" type="string" />
    241                 <attribute name="match" type="tns:match" />
    242 
    243                 <attribute name="type" use="prohibited" />
    244                 <attribute name="value" use="prohibited" />
    245                 <attribute name="name" use="prohibited" />
    246                 <attribute name="delete-if-empty" use="prohibited" />
    247                 <attribute name="display-values" use="prohibited" />
    248                 <anyAttribute processContents="skip" />
    249         </complexType>
    250 
    251         <complexType name="checkgroup">
    252                 <sequence>
    253                         <choice minOccurs="1" maxOccurs="unbounded">
    254                                 <element name="check" type="tns:check" />
    255                         </choice>
    256                 </sequence>
    257                 <attribute name="columns" type="positiveInteger" />
    258                 <anyAttribute processContents="skip" />
    259         </complexType>
    260 
    261         <complexType name="check">
    262                 <attribute name="key" type="string" use="required" />
    263                 <attribute name="text" type="string" />
    264                 <attribute name="text_context" type="string" />
    265                 <attribute name="default" type="tns:check_default" />
    266                 <attribute name="value_on" type="string" />
    267                 <attribute name="value_off" type="string" />
    268                 <attribute name="disable_off" type="boolean" />
    269                 <attribute name="match" type="tns:match" />
    270 
    271                 <attribute name="name" use="prohibited" />
    272                 <attribute name="type" use="prohibited" />
    273                 <attribute name="value" use="prohibited" />
    274                 <anyAttribute processContents="skip" />
    275         </complexType>
    276 
    277         <simpleType name="check_default">
    278                 <restriction base="string">
    279                         <enumeration value="on" />
    280                         <enumeration value="off" />
    281                 </restriction>
    282         </simpleType>
    283 
    284         <simpleType name="last_default">
    285                 <restriction base="string">
    286                         <enumeration value="true" />
    287                         <enumeration value="false" />
    288                         <enumeration value="force" />
    289                 </restriction>
    290         </simpleType>
    291 
    292         <simpleType name="match">
    293                 <restriction base="string">
    294                         <enumeration value="none" />
    295                         <enumeration value="key" />
    296                         <enumeration value="key!" />
    297                         <enumeration value="keyvalue" />
     3    xmlns:tns="http://josm.openstreetmap.de/tagging-preset-1.0"
     4    elementFormDefault="qualified">
     5
     6    <!-- Localized attributes (for example de.description are not supported
     7        by xsd, so every element needs <anyAttribute/> To cover at least some common
     8        errors, elements have specified prohibited attributes -->
     9
     10    <element name="annotations" type="tns:root" />
     11    <element name="presets" type="tns:root">
     12        <unique name="chunk_id">
     13            <selector xpath=".//tns:chunk"/>
     14            <field xpath="@id"/>
     15        </unique>
     16        <keyref name="chunk_ref" refer="tns:chunk_id">
     17            <selector xpath=".//tns:reference"/>
     18            <field xpath="@ref"/>
     19        </keyref>
     20    </element>
     21
     22    <complexType name="root">
     23        <complexContent>
     24            <extension base="tns:group-parent">
     25                <attribute name="author" type="string" />
     26                <attribute name="version" type="string" />
     27                <attribute name="shortdescription" type="string" />
     28                <attribute name="description" type="string" />
     29                <attribute name="link" type="string" />
     30                <attribute name="baselanguage" type="string" />
     31
     32                <anyAttribute processContents="skip" />
     33            </extension>
     34        </complexContent>
     35    </complexType>
     36
     37    <complexType name="group-parent">
     38        <sequence>
     39            <choice minOccurs="1" maxOccurs="unbounded">
     40                <element name="chunk" type="tns:chunk"/>
     41                <element name="group" type="tns:group" />
     42                <element name="item" type="tns:item" />
     43                <element name="separator" type="tns:separator" />
     44            </choice>
     45        </sequence>
     46        <attribute name="icon" type="string" />
     47
     48        <attribute name="type" use="prohibited" />
     49        <attribute name="text" use="prohibited" />
     50        <anyAttribute processContents="skip" />
     51    </complexType>
     52
     53    <complexType name="group">
     54        <complexContent>
     55            <extension base="tns:group-parent">
     56                <attribute name="name" type="string" use="required" />
     57            </extension>
     58        </complexContent>
     59    </complexType>
     60
     61    <complexType name="separator" />
     62
     63    <complexType name="item">
     64        <sequence>
     65            <choice minOccurs="0" maxOccurs="unbounded">
     66                <group ref="tns:optional_elements" />
     67                <element name="key" type="tns:key" />
     68                <element name="optional" type="tns:optional" minOccurs="0" />
     69            </choice>
     70            <element name="roles" type="tns:roles" minOccurs="0" maxOccurs="1" />
     71        </sequence>
     72        <attribute name="name" type="string" use="required" />
     73        <attribute name="icon" type="string" />
     74        <attribute name="type" type="string" />
     75        <attribute name="name_template" type="string"/>
     76        <attribute name="name_template_filter" type="string"/>
     77        <attribute name="preset_name_label" type="boolean"/>
     78
     79        <attribute name="text" use="prohibited" />
     80        <anyAttribute processContents="skip" />
     81    </complexType>
     82
     83    <complexType name="optional">
     84        <group ref="tns:optional_elements" maxOccurs="unbounded" />
     85        <attribute name="text" type="string" />
     86        <attribute name="text_context" type="string" />
     87    </complexType>
     88
     89    <complexType name="chunk">
     90        <choice minOccurs="1" maxOccurs="1">
     91            <sequence>
     92                <choice minOccurs="1" maxOccurs="unbounded">
     93                    <group ref="tns:optional_elements" />
     94                    <element name="key" type="tns:key" />
     95                    <element name="optional" type="tns:optional" minOccurs="0" />
     96                </choice>
     97            </sequence>
     98            <sequence>
     99                <!-- Cannot use tns:list_elements here because reference is present both in optional_elements and list_elements
     100                so it violates cos-nonambig: Unique Particle Attribution :
     101                <group ref="tns:list_elements" minOccurs="1" maxOccurs="unbounded" />-->
     102                <element name="list_entry" type="tns:list_entry" minOccurs="1" maxOccurs="unbounded" />
     103            </sequence>
     104        </choice>
     105        <attribute name="id" type="ID" use="required" />
     106    </complexType>
     107
     108    <complexType name="reference">
     109        <attribute name="ref" type="IDREF" use="required" />
     110    </complexType>
     111
     112    <group name="optional_elements">
     113        <choice>
     114            <element name="label" type="tns:label" />
     115            <element name="space" type="tns:space" />
     116            <element name="link" type="tns:link" />
     117            <element name="preset_link" type="tns:preset_link" />
     118            <element name="text" type="tns:text" />
     119            <element name="combo" type="tns:combo" />
     120            <element name="multiselect" type="tns:multiselect" />
     121            <element name="checkgroup" type="tns:checkgroup" />
     122            <element name="check" type="tns:check" />
     123            <element name="item_separator" type="tns:separator" />
     124            <element name="reference" type="tns:reference" />
     125        </choice>
     126    </group>
     127
     128    <group name="list_elements">
     129        <choice>
     130            <element name="list_entry" type="tns:list_entry" />
     131            <element name="reference" type="tns:reference" />
     132        </choice>
     133    </group>
     134
     135    <complexType name="key">
     136        <attribute name="key" type="string" use="required" />
     137        <attribute name="value" type="string" />
     138        <attribute name="match" type="string" />
     139    </complexType>
     140
     141    <complexType name="link">
     142        <attribute name="href" type="string" use="required" />
     143        <attribute name="text" type="string" />
     144        <attribute name="text_context" type="string" />
     145
     146        <attribute name="name" use="prohibited" />
     147        <anyAttribute processContents="skip" />
     148    </complexType>
     149
     150    <complexType name="preset_link">
     151        <attribute name="preset_name" type="string" use="required" />
     152        <attribute name="name" use="prohibited" />
     153    </complexType>
     154
     155    <complexType name="label">
     156        <attribute name="text" type="string" use="required" />
     157        <attribute name="text_context" type="string" />
     158        <attribute name="icon" type="string" />
     159        <attribute name="icon_size" type="integer" />
     160
     161        <attribute name="name" use="prohibited" />
     162        <anyAttribute processContents="skip" />
     163    </complexType>
     164
     165    <complexType name="space" />
     166
     167    <complexType name="text">
     168        <attribute name="key" type="string" use="required" />
     169        <attribute name="text" type="string" />
     170        <attribute name="text_context" type="string" />
     171        <attribute name="default" type="string" />
     172        <attribute name="use_last_as_default" type="tns:last_default" />
     173        <attribute name="auto_increment" type="string" />
     174        <attribute name="match" type="tns:match" />
     175        <attribute name="length" type="positiveInteger" />
     176        <attribute name="alternative_autocomplete_keys" type="string" />
     177
     178        <attribute name="type" use="prohibited" />
     179        <attribute name="name" use="prohibited" />
     180        <attribute name="value" use="prohibited" />
     181        <attribute name="values" use="prohibited" />
     182        <anyAttribute processContents="skip" />
     183    </complexType>
     184
     185    <complexType name="list_entry">
     186        <attribute name="value" type="string" use="required" />
     187        <attribute name="value_context" type="string" />
     188        <attribute name="display_value" type="string" />
     189        <attribute name="short_description" type="string" />
     190        <attribute name="icon" type="string" />
     191        <attribute name="icon_size" type="integer" />
     192        <anyAttribute processContents="skip" />
     193    </complexType>
     194
     195    <complexType name="combo">
     196        <!-- use either list_entry's or a combination of values/display_values -->
     197        <sequence>
     198            <group ref="tns:list_elements" minOccurs="0" maxOccurs="unbounded" />
     199        </sequence>
     200        <attribute name="key" type="string" use="required" />
     201        <attribute name="text" type="string" />
     202        <attribute name="text_context" type="string" />
     203        <attribute name="values" type="string" />
     204        <attribute name="values_from" type="string" />
     205        <attribute name="values_context" type="string" />
     206        <attribute name="values_no_i18n" type="boolean" />
     207        <attribute name="values_sort" type="boolean" />
     208        <attribute name="display_values" type="string" />
     209        <attribute name="values_searchable" type="boolean" />
     210        <attribute name="default" type="string" />
     211        <attribute name="use_last_as_default" type="tns:last_default" />
     212        <attribute name="delimiter" type="string" />
     213        <attribute name="editable" type="boolean" />
     214        <attribute name="match" type="tns:match" />
     215        <attribute name="length" type="positiveInteger" />
     216
     217        <attribute name="type" use="prohibited" />
     218        <attribute name="value" use="prohibited" />
     219        <attribute name="name" use="prohibited" />
     220        <attribute name="delete-if-empty" use="prohibited" />
     221        <attribute name="display-values" use="prohibited" />
     222        <anyAttribute processContents="skip" />
     223    </complexType>
     224
     225    <complexType name="multiselect">
     226        <!-- use either list_entry's or a combination of values/display_values -->
     227        <sequence>
     228            <group ref="tns:list_elements" minOccurs="0" maxOccurs="unbounded" />
     229        </sequence>
     230        <attribute name="key" type="string" use="required" />
     231        <attribute name="text" type="string" />
     232        <attribute name="text_context" type="string" />
     233        <attribute name="values" type="string" />
     234        <attribute name="values_from" type="string" />
     235        <attribute name="values_context" type="string" />
     236        <attribute name="display_values" type="string" />
     237        <attribute name="values_searchable" type="boolean" />
     238        <attribute name="default" type="string" />
     239        <attribute name="use_last_as_default" type="tns:last_default" />
     240        <attribute name="delimiter" type="string" />
     241        <attribute name="match" type="tns:match" />
     242
     243        <attribute name="type" use="prohibited" />
     244        <attribute name="value" use="prohibited" />
     245        <attribute name="name" use="prohibited" />
     246        <attribute name="delete-if-empty" use="prohibited" />
     247        <attribute name="display-values" use="prohibited" />
     248        <anyAttribute processContents="skip" />
     249    </complexType>
     250
     251    <complexType name="checkgroup">
     252        <sequence>
     253            <choice minOccurs="1" maxOccurs="unbounded">
     254                <element name="check" type="tns:check" />
     255            </choice>
     256        </sequence>
     257        <attribute name="columns" type="positiveInteger" />
     258        <anyAttribute processContents="skip" />
     259    </complexType>
     260
     261    <complexType name="check">
     262        <attribute name="key" type="string" use="required" />
     263        <attribute name="text" type="string" />
     264        <attribute name="text_context" type="string" />
     265        <attribute name="default" type="tns:check_default" />
     266        <attribute name="value_on" type="string" />
     267        <attribute name="value_off" type="string" />
     268        <attribute name="disable_off" type="boolean" />
     269        <attribute name="match" type="tns:match" />
     270
     271        <attribute name="name" use="prohibited" />
     272        <attribute name="type" use="prohibited" />
     273        <attribute name="value" use="prohibited" />
     274        <anyAttribute processContents="skip" />
     275    </complexType>
     276
     277    <simpleType name="check_default">
     278        <restriction base="string">
     279            <enumeration value="on" />
     280            <enumeration value="off" />
     281        </restriction>
     282    </simpleType>
     283
     284    <simpleType name="last_default">
     285        <restriction base="string">
     286            <enumeration value="true" />
     287            <enumeration value="false" />
     288            <enumeration value="force" />
     289        </restriction>
     290    </simpleType>
     291
     292    <simpleType name="match">
     293        <restriction base="string">
     294            <enumeration value="none" />
     295            <enumeration value="key" />
     296            <enumeration value="key!" />
     297            <enumeration value="keyvalue" />
    298298            <enumeration value="keyvalue!" />
    299                 </restriction>
    300         </simpleType>
    301 
    302         <complexType name="roles">
    303                 <sequence>
    304                         <element name="role" type="tns:role" minOccurs="1" maxOccurs="unbounded" />
    305                 </sequence>
    306         </complexType>
    307 
    308         <complexType name="role">
    309                 <attribute name="key" type="string" />
    310                 <attribute name="text" type="string" />
    311                 <attribute name="text_context" type="string" />
    312                 <attribute name="requisite" type="tns:role_requisite" />
    313                 <attribute name="type" type="string" />
    314                 <attribute name="count" type="integer" />
    315                 <attribute name="member_expression" type="string" />
    316                 <anyAttribute processContents="skip" />
    317         </complexType>
    318 
    319         <simpleType name="role_requisite">
    320                 <restriction base="string">
    321                         <enumeration value="required" />
    322                         <enumeration value="optional" />
    323                 </restriction>
    324         </simpleType>
     299        </restriction>
     300    </simpleType>
     301
     302    <complexType name="roles">
     303        <sequence>
     304            <element name="role" type="tns:role" minOccurs="1" maxOccurs="unbounded" />
     305        </sequence>
     306    </complexType>
     307
     308    <complexType name="role">
     309        <attribute name="key" type="string" />
     310        <attribute name="text" type="string" />
     311        <attribute name="text_context" type="string" />
     312        <attribute name="requisite" type="tns:role_requisite" />
     313        <attribute name="type" type="string" />
     314        <attribute name="count" type="integer" />
     315        <attribute name="member_expression" type="string" />
     316        <anyAttribute processContents="skip" />
     317    </complexType>
     318
     319    <simpleType name="role_requisite">
     320        <restriction base="string">
     321            <enumeration value="required" />
     322            <enumeration value="optional" />
     323        </restriction>
     324    </simpleType>
    325325
    326326</schema>
Note: See TracChangeset for help on using the changeset viewer.