xml/schema/lib/types/gomodh.xsd

74 lines
2.6 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:include schemaLocation="./net.xsd"/>
<xs:include schemaLocation="./unix.xsd"/>
<xs:complexType name="t_gomodh_base">
<xs:attribute name="name" type="t_unix_portablePosixFilename" use="required"/>
<xs:attribute name="baseUrl" type="t_net_http_basic_uri" use="optional"/>
</xs:complexType>
<xs:complexType name="t_gomodh_pkg">
<xs:complexContent>
<xs:extension base="t_gomodh_base">
<xs:all>
<xs:element name="realUrl" type="t_gomodh_vcs_uri" minOccurs="1"/>
</xs:all>
<xs:attribute name="vcsType" type="t_gomodh_vcs" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="t_gomodh_mod">
<xs:complexContent>
<xs:extension base="t_gomodh_base">
<xs:all>
<xs:element name="realURL" type="t_net_http_basic_uri"/>
<xs:element name="releases">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="release">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:token">
<xs:attribute name="dir" type="t_unix_dirpath" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="baseDir" type="t_unix_dirpath" use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- VCS are also called SCM. -->
<xs:simpleType name="t_gomodh_vcs">
<xs:restriction base="xs:string">
<xs:enumeration value="bzr"/>
<xs:enumeration value="fossil"/>
<xs:enumeration value="git"/>
<xs:enumeration value="hg"/>
<xs:enumeration value="svn"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="t_gomodh_vcs_uri">
<xs:restriction base="xs:anyURI">
<!--
Some of the weird ones might be BZR.
http://doc.bazaar.canonical.com/development/en/user-reference/urlspec-help.html
-->
<xs:pattern value="(https?|bzr|aftp|bzr\+ssh|file|ftp|sftp|git|ssh|hg)://.+/?"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>