schema/ssm.xsd
author František Kučera <franta-hg@frantovo.cz>
Wed, 02 Oct 2019 22:28:55 +0200
branchv_0
changeset 43 1f52b8493268
parent 42 ef8fd61fd011
child 47 7e665331bc32
permissions -rw-r--r--
link GNU Coding Standards and Information for Maintainers of GNU Software Add links to compatible and relevant rules in GNU. Thanks to Félicien Pillot for bringing this idea and finding some matching rules: https://lists.globalcode.info/mailman3/hyperkitty/list/sane-software@lists.globalcode.info/thread/LVFFEQREQ2LBZGWVJIFTZE2QV3AGF5RO/
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     1
<?xml version="1.0" encoding="UTF-8"?>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     2
<!--
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     3
	Sane Software Manifesto helper tools
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     4
	Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     5
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     6
    This program is free software: you can redistribute it and/or modify
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     7
    it under the terms of the GNU General Public License as published by
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     8
    the Free Software Foundation, version 3.
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     9
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    10
    This program is distributed in the hope that it will be useful,
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    13
    GNU General Public License for more details.
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    14
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    15
	You should have received a copy of the GNU General Public License
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    16
	along with this program.  If not, see <https://www.gnu.org/licenses/>.
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    17
-->
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    18
<xs:schema xmlns="tag:globalcode.info,2019:sane-software/manifesto"
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    19
		   targetNamespace="tag:globalcode.info,2019:sane-software/manifesto"
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    20
		   xmlns:xs="http://www.w3.org/2001/XMLSchema"
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    21
		   elementFormDefault="qualified"
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    22
		   attributeFormDefault="unqualified">
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    23
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    24
	<xs:element name="manifesto" type="Manifesto"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    25
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    26
	<xs:complexType name="Manifesto">
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    27
		<xs:sequence>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    28
			<xs:element name="title" type="xs:string"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    29
			<xs:element name="id" type="ID"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    30
			<xs:element name="preamble" type="xs:string"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    31
			<xs:element name="chapter" type="Chapter" maxOccurs="unbounded"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    32
		</xs:sequence>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    33
	</xs:complexType>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    34
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    35
	<xs:simpleType name="ID">
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    36
		<xs:annotation>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    37
			<xs:documentation>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    38
				UUID, but must start with a letter, to comply with XML ID rules;
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    39
				use e.g. uuidgen | grep ^[a-f];
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    40
				Never reuse the ID if one chapter/item is removed and another with different meaning is added.
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    41
			</xs:documentation>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    42
		</xs:annotation>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    43
		<xs:restriction base="xs:ID">
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    44
			<xs:pattern value="[a-f][a-f0-9]{7}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    45
		</xs:restriction>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    46
	</xs:simpleType>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    47
		
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    48
	<xs:complexType name="Chapter">
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    49
		<xs:sequence>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    50
			<xs:element name="name" type="xs:string"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    51
			<xs:element name="id" type="ID"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    52
			<xs:element name="item" type="Item" maxOccurs="unbounded"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    53
		</xs:sequence>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    54
	</xs:complexType>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    55
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    56
	<xs:complexType name="Item">
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    57
		<xs:sequence>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    58
			<xs:element name="id" type="ID"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    59
			<xs:element name="text" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    60
			<xs:element name="note" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    61
			<xs:element name="link" type="Link" minOccurs="0" maxOccurs="unbounded"/>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    62
			<xs:element name="item" type="Item" minOccurs="0" maxOccurs="unbounded"/>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    63
		</xs:sequence>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    64
	</xs:complexType>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    65
	
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    66
	<xs:complexType name="Link">
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    67
		<xs:sequence>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    68
			<xs:element name="url" type="URL"/>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    69
			<xs:element name="type" type="LinkType"/>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    70
			<xs:element name="title" type="xs:string"/>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    71
			<xs:element name="description" type="xs:string" minOccurs="0"/>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    72
			<xs:element name="quotation" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    73
		</xs:sequence>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    74
	</xs:complexType>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    75
	
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    76
	<xs:simpleType name="LinkType" final="restriction" >
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    77
		<xs:restriction base="xs:string">
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    78
			<xs:enumeration value="related">
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    79
				<xs:annotation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    80
					<xs:documentation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    81
						generic link
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    82
					</xs:documentation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    83
				</xs:annotation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    84
			</xs:enumeration>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    85
			<xs:enumeration value="compatible">
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    86
				<xs:annotation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    87
					<xs:documentation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    88
						link to a particular compatible rule in another guidelines
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    89
					</xs:documentation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    90
				</xs:annotation>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    91
			</xs:enumeration>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    92
		</xs:restriction>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    93
	</xs:simpleType>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    94
	
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    95
	<xs:simpleType name="URL">
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    96
		<xs:restriction base="xs:string">
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    97
			<xs:pattern value="https?://[^ ]+"/>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    98
		</xs:restriction>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
    99
	</xs:simpleType>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   100
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   101
</xs:schema>