summaryrefslogtreecommitdiff
path: root/doc/xsd/gst.xsd
blob: 11eee5e3ae7d5a37a929184152b452b043829976 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0"?>
<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en">
  
  <annotation>
    <documentation>

	 Common XML format helpers for the ximian-setup-tool backends.
	 
	 Copyright (C) 2001 Ximian, Inc.
	 
	 Authors: Arturo Espinosa [arturo@ximian.com]

	 This is intended mainly as a means for documentation, not validation,
	 but I hope to be able to validate the XML we get and return to
	 backends with these files some day.
    </documentation>
  </annotation>
  
  <!-- An empty tag -->
  <simpleType name="gstKeyword"></simpleType>
  
  <!-- Boolean value, empty content, true/false state attribute -->
  <complexType name="gstBoolState">
    <attribute name="state" type="gstTrueFalse" use="required"/>
  </complexType>
  
  <simpleType name="gstTrueFalse">
    <restriction base="string">
	 <enumeration value="true"/>
	 <enumeration value="false"/>
    </restriction>
  </simpleType>
  
  <!-- Another boolean value, restricted to 1 or 0 -->
  <simpleType name="gstBool">
    <restriction base="string">
	 <enumeration value="0"/>
	 <enumeration value="1"/>
    </restriction>
  </simpleType>
    
  <!-- An absolute path to a file, or similar -->
  <simpleType name="gstFilePath">
    <restriction base="string">
	 <pattern value="^/.*">
    </restriction>
  </simpleType>

  <!-- This checks for a value of the form
       0-255.0-255.0-255.0-255 for IPv4: believe me. -->
  <simpleType name="gstIPv4">
    <restriction base="string">
      <pattern value="^((1[0-9][0-9]|2[0-4][0-9]|25[0-5]|0?[0-9][0-9]|[0-9])\.){3}(1[0-9][0-9]|2[0-4][0-9]|25[0-5]|0?[0-9][0-9]|[0-9])$"/>
    </restriction>
  </simpleType>

  <!-- IPv6: an aptempt -->
  <simpleType name="gstIPv6">
    <restriction base="string">
      <pattern value="^([0-9a-f][0-9a-f]::)+$"/>
    </restriction>
  </simpleType>

  <!-- An IP address, either v.4 or v.6 -->
  <simpleType name="gstIP">
    <union memberTypes="gstIPv4 xstIPv6"/>
  </simpleType>
  
  <!-- A hostname (warpig.hello.com, blah-blah, runes.com.mx.) -->
  <simpleType name="gstHostname">
    <restriction base="string">
      <pattern value="^([a-zA-Z0-9_-]+\.?)+$"/>
    </restriction>
  </simpleType>
  
  <!-- An e-mail address -->
  <simpleType name="gstEmail">
    <restriction base="string">
      <pattern value="^[A-Za-z0-9_]+@([a-zA-Z0-9_-]+\.?)+$"/>
    </restriction>
  </simpleType>

  <!-- TODO: an URL type -->
  <simpleType name="gstUrl">
    <restriction base="string">
      <!-- could start with sth like this:
      <pattern value="^[a-zA-Z0-9]+://([A-Za-z0-9_]+:[^@]*@)?([a-zA-Z0-9_-]+\.?)+(:[0-9]+)?/"/>
      -->
    </restriction>
  </simpleType>

  <!-- A Mime-type. Based on Potato's /etc/mime.types.
       Not completly accurate, but probably enough. -->
  <simpleType name="gstMime">
    <restriction base="string">
      <pattern value="^(application|audio|image|inode|message|multipart|text|video|x-[a-z0-9-]+)/(activemessage|andrew-inset|applefile|atomicmail|cu-seeme|dca-rft|dec-dx|dsptype|excel|futuresplash|ghostview|mac-binhex40|macwriteii|news-message-id|news-transmission|octet-stream|oda|pdf|pgp-signature|postscript|powerpoint|remote-printing|rtf|slate|wita|wordperfect5.1|zip|basic|midi|mpeg|mpegurl|gif|ief|jpeg|png|tiff|chardevice|blockdevice|directory-locked|directory|fifo|socket|external-body|news|partial|rfc822|alternative|appledouble|digest|mixed|parallel|comma-separated-values|english|html|mathml|plain|richtext|tab-separated-values|dl|fli|gl|mpeg|quicktime|x-[a-z0-9-]+)"/>
    </restriction>
  </simpleType>
  
</schema>