mirror of
https://github.com/cliffe/SecGen.git
synced 2026-02-20 13:50:45 +00:00
87 lines
4.6 KiB
XML
87 lines
4.6 KiB
XML
<?xml version="1.0"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
targetNamespace="http://www.github/cliffe/SecGen/generator"
|
|
xmlns="http://www.github/cliffe/SecGen/generator"
|
|
elementFormDefault="qualified">
|
|
|
|
<xs:simpleType name="platformOptions">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="linux"/>
|
|
<xs:enumeration value="unix"/>
|
|
<xs:enumeration value="windows"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:element name="generator">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<!--required SecGen module details-->
|
|
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="author" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
|
|
<xs:element name="module_license" minOccurs="1" maxOccurs="unbounded">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="MIT"/>
|
|
<xs:enumeration value="Apache v2"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:element>
|
|
<xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="type" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
|
|
<xs:element name="platform" type="platformOptions" minOccurs="1" maxOccurs="unbounded"/>
|
|
|
|
<!--optional details-->
|
|
<xs:element name="reference" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="software_name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="software_license" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
|
<!--I/O: a generator writes it's output to one fact-->
|
|
<xs:element name="output_type" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<!-- cannot co-exist with a system matching ALL of the optionally specified values (can be repeated for OR)-->
|
|
<xs:element name="conflict" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="module_path" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="module_license" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
|
<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="platform" type="platformOptions" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
|
<xs:element name="reference" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="software_name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="software_license" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<!-- must co-exist with a system matching ALL of the optionally specified values (can be repeated for OR)-->
|
|
<!-- if a scenario does not include one already, the first match (randomly) found will be added before this module-->
|
|
<xs:element name="requires" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="module_path" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="module_license" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
|
<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="platform" type="platformOptions" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
|
<xs:element name="reference" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="software_name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="software_license" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
</xs:schema> |