xml/schema/lib/types/git.xsd

54 lines
1.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:simpleType name="t_git_commit">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Fa-f0-9]{4,40}"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="t_git_ref">
<xs:union memberTypes="xs:token t_git_commit"/>
</xs:simpleType>
<xs:simpleType name="t_git_reftypes">
<xs:restriction base="xs:token">
<xs:enumeration value="branch"/><!-- a.k.a. "head" -->
<xs:enumeration value="head"/><!-- a.k.a. "branch" -->
<xs:enumeration value="tag"/>
<xs:enumeration value="commit"/><!-- a.k.a. "rev" -->
<xs:enumeration value="rev"/><!-- a.k.a. "commit" -->
</xs:restriction>
</xs:simpleType>
<!--
<xs:complexType name="t_git_remote">
<xs:simpleContent>
<xs:extension base="t_git_uri">
<xs:attribute name="refType" use="optional" default="branch" type="t_git_reftypes"/>
<xs:attribute name="ref" use="optional" default="master" type="t_git_reftypes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
-->
<xs:complexType name="t_git_remote">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:choice minOccurs="1" maxOccurs="3">
<xs:element name="refType" minOccurs="0" maxOccurs="1" type="t_git_reftypes" default="branch"/>
<xs:element name="ref" minOccurs="0" maxOccurs="1" type="t_git_ref" default="master"/>
<xs:element name="uri" minOccurs="1" maxOccurs="1" type="t_git_uri"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="t_git_uri">
<xs:restriction base="xs:anyURI">
<xs:pattern value="(https?|git|file)://.*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>