hoooo doggie
This commit is contained in:
parent
9ec5bee035
commit
5b537e3531
41
schema/lib/elements/ipxe.xsd
Normal file
41
schema/lib/elements/ipxe.xsd
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified">
|
||||||
|
|
||||||
|
<xs:include schemaLocation="../types/unix.xsd"/>
|
||||||
|
<xs:include schemaLocation="../types/ipxe.xsd"/>
|
||||||
|
|
||||||
|
<xs:complexType name="e_ipxe_opts">
|
||||||
|
<xs:choice minOccurs="1" maxOccurs="2">
|
||||||
|
<xs:element name="enable" maxOccurs="1">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:element name="opt" minOccurs="1" type="t_ipxe_patchopt"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="disable" maxOccurs="1">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:element name="opt" minOccurs="1" type="t_ipxe_patchopt"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:choice>
|
||||||
|
<xs:attribute name="file" type="t_unix_anyfile" use="required"/>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="e_ipxe_optswitch">
|
||||||
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:element name="opts" minOccurs="1" maxOccurs="unbounded" type="e_ipxe_opts"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="e_ipxe_patch">
|
||||||
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:element name="patchFile" minOccurs="1" maxOccurs="unbounded" type="t_unix_filepath"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
</xs:schema>
|
15
schema/lib/types/ipxe.xsd
Normal file
15
schema/lib/types/ipxe.xsd
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified">
|
||||||
|
|
||||||
|
<xs:include schemaLocation="../types/unix.xsd"/>
|
||||||
|
|
||||||
|
<xs:simpleType name="t_ipxe_patchopt">
|
||||||
|
<xs:restriction base="xs:token">
|
||||||
|
<xs:pattern value="[A-Z0-9_]+"/>
|
||||||
|
<xs:whiteSpace value="collapse"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
</xs:schema>
|
@ -20,7 +20,14 @@
|
|||||||
</xs:choice>
|
</xs:choice>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
<!-- This is more or less the same as t_unix_filepath with the exception of it allowing "/". -->
|
<!-- These were a pain to figure out. -->
|
||||||
|
<!-- wtf. doesn't seem to work?
|
||||||
|
dir: ^\s*(~?/[^/]*)+/?\s*$
|
||||||
|
file: ^\s*(~?/[^/]+)+\s*$
|
||||||
|
reldir: ^\s*[^/](([^/]*)+/?)+\s*$
|
||||||
|
relfile: ^\s*[^/]+([^/]*)+[^/]\s*$
|
||||||
|
-->
|
||||||
|
<!-- ABSOLUTE directory path -->
|
||||||
<xs:simpleType name="t_unix_dirpath">
|
<xs:simpleType name="t_unix_dirpath">
|
||||||
<xs:restriction base="xs:string">
|
<xs:restriction base="xs:string">
|
||||||
<xs:pattern value="\s*(~?/[^/]*)+/?\s*"/>
|
<xs:pattern value="\s*(~?/[^/]*)+/?\s*"/>
|
||||||
@ -28,13 +35,55 @@
|
|||||||
</xs:restriction>
|
</xs:restriction>
|
||||||
</xs:simpleType>
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- RELATIVE directory path -->
|
||||||
|
<xs:simpleType name="t_unix_reldirpath">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="\s*[^/](([^/]*)+/?)+\s*"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- ABSOLUTE file path -->
|
||||||
<xs:simpleType name="t_unix_filepath">
|
<xs:simpleType name="t_unix_filepath">
|
||||||
<xs:restriction base="xs:string">
|
<xs:restriction base="xs:string">
|
||||||
<xs:pattern value="\s*(~?/[^/]+)+/?\s*"/>
|
<xs:pattern value="\s*(~?/[^/]+)+\s*"/>
|
||||||
<xs:whiteSpace value="collapse"/>
|
<xs:whiteSpace value="collapse"/>
|
||||||
</xs:restriction>
|
</xs:restriction>
|
||||||
</xs:simpleType>
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- RELATIVE file path -->
|
||||||
|
<xs:simpleType name="t_unix_relfilepath">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="\s*[^/]+([^/]*)+[^/]\s*"/>
|
||||||
|
<xs:whiteSpace value="collapse"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- ABSOLUTE path (file or directory) -->
|
||||||
|
<xs:simpleType name="t_unix_path">
|
||||||
|
<xs:union memberTypes="t_unix_dirpath t_unix_filepath"/>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- RELATIVE path (file or directory) -->
|
||||||
|
<xs:simpleType name="t_unix_relpath">
|
||||||
|
<xs:union memberTypes="t_unix_reldirpath t_unix_relfilepath"/>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- ANY valid value for the above types. -->
|
||||||
|
<xs:simpleType name="t_unix_anypath">
|
||||||
|
<xs:union memberTypes="t_unix_path t_unix_relpath"/>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- RELATIVE or ABSOLUTE file path -->
|
||||||
|
<xs:simpleType name="t_unix_anyfile">
|
||||||
|
<xs:union memberTypes="t_unix_filepath t_unix_relfilepath"/>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- RELATIVE or ABSOLUTE dir path -->
|
||||||
|
<xs:simpleType name="t_unix_anydir">
|
||||||
|
<xs:union memberTypes="t_unix_dirpath t_unix_reldirpath"/>
|
||||||
|
</xs:simpleType>
|
||||||
|
<!-- END of regex silliness. What an ugly annoyance. -->
|
||||||
|
|
||||||
<xs:complexType name="t_unix_nixpass">
|
<xs:complexType name="t_unix_nixpass">
|
||||||
<xs:choice minOccurs="1" maxOccurs="1">
|
<xs:choice minOccurs="1" maxOccurs="1">
|
||||||
<xs:element name="passwordPlain">
|
<xs:element name="passwordPlain">
|
||||||
|
29
schema/projects/ipxe/build.xsd
Normal file
29
schema/projects/ipxe/build.xsd
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<xs:schema targetNamespace="https://router.r00t2.io/boootbox/ipxe/build/"
|
||||||
|
xmlns="https://router.r00t2.io/boootbox/ipxe/build/"
|
||||||
|
xmlns:ipxe="https://router.r00t2.io/boootbox/ipxe/build/"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified">
|
||||||
|
|
||||||
|
<xs:include schemaLocation="../../lib/types/unix.xsd"/>
|
||||||
|
<xs:include schemaLocation="../../lib/types/ipxe.xsd"/>
|
||||||
|
<xs:include schemaLocation="../../lib/elements/ipxe.xsd"/>
|
||||||
|
|
||||||
|
<xs:element name="ipxe">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all minOccurs="1">
|
||||||
|
<xs:element name="patchSet">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence minOccurs="1" maxOccurs="2">
|
||||||
|
<xs:element name="switchOpts" maxOccurs="1" type="e_ipxe_optswitch"/>
|
||||||
|
<xs:element name="patch" maxOccurs="1" type="e_ipxe_patch"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="root" type="t_unix_dirpath" use="optional"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
|
||||||
|
</xs:schema>
|
Loading…
Reference in New Issue
Block a user