<?xml version="1.0" encoding="UTF-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="framework" type="frameworkType"/> <xs:complexType name="commandType"> <xs:all> <xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1"/> <xs:element type="xs:string" name="params" minOccurs="0" maxOccurs="1"/> <xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/> <xs:element type="optionsBeforeType" name="optionsBefore" minOccurs="0" maxOccurs="1"/> </xs:all> </xs:complexType> <xs:complexType name="frameworkType"> <xs:sequence> <xs:element type="xs:string" name="extraData" minOccurs="0" maxOccurs="1"/> <xs:element type="commandType" name="command" maxOccurs="unbounded" minOccurs="0"/> <xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute type="xs:string" name="name" use="required"/> <xs:attribute type="xs:string" name="invoke" use="required"/> <xs:attribute type="xs:string" name="alias" use="required"/> <xs:attribute type="xs:boolean" name="enabled" use="required"/> <xs:attribute type="xs:integer" name="version" use="required"/> <xs:attribute type="xs:string" name="frameworkId" use="optional"/> </xs:complexType> <xs:complexType name="optionsBeforeType"> <xs:sequence> <xs:element type="optionType" name="option" maxOccurs="unbounded" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="optionType"> <xs:sequence> <xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute type="xs:string" name="name" use="required"/> <xs:attribute type="xs:string" name="shortcut" use="optional"/> <xs:attribute name="pattern" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="space"/> <xs:enumeration value="equals"/> <xs:enumeration value="unknown"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:schema>