diff options
Diffstat (limited to 'metadata/xml-schema/projects.xsd')
-rw-r--r-- | metadata/xml-schema/projects.xsd | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/metadata/xml-schema/projects.xsd b/metadata/xml-schema/projects.xsd deleted file mode 100644 index 770bd6769c6c..000000000000 --- a/metadata/xml-schema/projects.xsd +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> - -<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> - <xs:element name='projects'> - <xs:complexType> - <xs:choice minOccurs='0' maxOccurs='unbounded'> - <xs:element name='project' type='projectType'> - <xs:unique name='descUniquityConstraint'> - <xs:selector xpath='description'/> - <xs:field xpath='@fake-only-once'/> - </xs:unique> - </xs:element> - </xs:choice> - </xs:complexType> - <xs:key name='projectKey'> - <xs:selector xpath='project'/> - <xs:field xpath='email'/> - </xs:key> - <xs:keyref name='subprojectRef' refer='projectKey'> - <xs:selector xpath='project/subproject'/> - <xs:field xpath='@ref'/> - </xs:keyref> - <!-- define additional keys to enforce exactly one element - of each kind --> - <xs:key name='projectNameKey'> - <xs:selector xpath='project'/> - <xs:field xpath='name'/> - </xs:key> - <xs:key name='projectURLKey'> - <xs:selector xpath='project'/> - <xs:field xpath='url'/> - </xs:key> - </xs:element> - - <xs:complexType name='projectType'> - <xs:choice minOccurs='0' maxOccurs='unbounded'> - <xs:element name='email' type='emailType'/> - <xs:element name='name' type='xs:token'/> - <xs:element name='url' type='urlType'/> - <xs:element name='description' type='descriptionType'/> - <xs:element name='subproject' type='subprojectType'/> - <xs:element name='member' type='memberType'/> - </xs:choice> - </xs:complexType> - - <xs:complexType name='descriptionType'> - <xs:simpleContent> - <xs:extension base='xs:token'> - <xs:attribute name='fake-only-once' - fixed='there can be at most one <description/> element'/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - <xs:complexType name='subprojectType'> - <xs:attribute name='inherit-members' type='numericBoolType'/> - <xs:attribute name='ref' type='projectRefType'/> - </xs:complexType> - - <xs:simpleType name='projectRefType'> - <xs:restriction base='emailType'> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name='memberType'> - <xs:all> - <xs:element name='email' type='emailType' - minOccurs='1' maxOccurs='1'/> - <xs:element name='name' type='xs:token' - minOccurs='0' maxOccurs='1'/> - <xs:element name='role' type='xs:token' - minOccurs='0' maxOccurs='1'/> - </xs:all> - <xs:attribute name='is-lead' type='numericBoolType'/> - </xs:complexType> - - <!-- generic types --> - <xs:simpleType name='emailType'> - <xs:restriction base='xs:token'> - <!-- minimal safe regex --> - <xs:pattern value="[^@]+@[^.]+\..+"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name='urlType'> - <xs:restriction base='xs:token'> - <!-- TODO: something better? --> - <xs:pattern value="(mailto:[^@]+@[^.]+\..+|https?://.+)"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name='numericBoolType'> - <xs:restriction base='xs:integer'> - <xs:minInclusive value='0'/> - <xs:maxInclusive value='1'/> - </xs:restriction> - </xs:simpleType> -</xs:schema> |