summaryrefslogtreecommitdiff
blob: e516d0cecb61bf3422886f3cb7eda05f70c574df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# $Header: /var/cvsroot/gentoo/xml/htdocs/dtd/mirrors.dtd,v 1.3 2009/12/03 09:43:39 robbat2 Exp $

# This file is used for keeping the new mirrors.xml file

# element: mirrors
# description: A set of mirrorgroups followed by a list of countries with their code
# example: <mirrors>
#            <mirrorgroup country="US" region="North America">
#              ...
#            </mirrorgroup>
#            ...
#            <countries>
#              <country code="CA">Canada</country>
#              ...
#            </countries>
#          </mirrors>

namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

mirrors = element mirrors { attlist.mirrors, mirrorgroup*, countries }
attlist.mirrors &= empty
# element: mirrorgroup
# description: Group mirrors by region and country.
#              The country code must exist in //countries/country
# example: <mirrorgroup region="South America" country="BZ">
#            <mirror>
#              ...
#            </mirror>
#            ...
#          </mirrorgroup
mirrorgroup = element mirrorgroup { attlist.mirrorgroup, mirror* }
attlist.mirrorgroup &=
  attribute region { text },
  attribute country { xsd:IDREF }
# element: mirror
# description: One per mirror; name the mirror and provide one or more uris
# optionally: provide GPS coordinates, a city and a bug id.
# example: <mirror city="Corvallis"
#                  coordinates="44.5646,-123.2620"
#                  gentoo-bug="12345">
#            <name>OSU Open Source Lab</name>
#            <uri protocol="http">http://gentoo.osuosl.org/</uri>
#            <uri protocol="ftp">ftp://gentoo.osuosl.org/</uri>
#          </mirror>
mirror = element mirror { attlist.mirror, name, uri+ }
attlist.mirror &=
  attribute city { text }?,
  attribute coordinates { text }?,
  attribute gentoo-bug { text }?
# element: name
# description: Name of the mirror
# note: Do not include a country and protocol pair, "(USA/http)" as they will
#       be built by the XSL.
# example: <name>OSU Open Source Lab</name>
name = element name { attlist.name, text }
attlist.name &= empty
# element: uri
# description: A Uniform Resource Locator for a given mirror
# example: <uri protocol='http' ipv4='y' ipv6='y'>http://gentoo.osuosl.org/</uri>
uri = element uri { attlist.uri, text }
attlist.uri &=
  [ a:defaultValue = "y" ] attribute ipv4 { "Y" | "y" | "N" | "n" }?,
  [ a:defaultValue = "n" ] attribute ipv6 { "Y" | "y" | "N" | "n" }?,
  [ a:defaultValue = "n" ] attribute partial { "Y" | "y" | "N" | "n" }?,
  [ a:defaultValue = "http" ]
  attribute protocol { "http" | "ftp" | "rsync" }?
# element: countries
# description: A list of countries with their code and name
# example: <countries>
#            <country code="CA">Canada</country>
#          <countries>
countries = element countries { attlist.countries, country* }
attlist.countries &= empty
# element: country
# description: A country with its code
# example: <country code="CA">Canada</country>
country = element country { attlist.country, text }
attlist.country &= attribute code { xsd:ID }
start = mirrors