view distribution/docs/plugin.xsd @ 1059:e11e9cbab899 0.7-branch

Initial plugin.xsd schema for plugin.xml files. Reviewed-by: neugens, omajid, vanaltj, jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-March/005959.html
author Giovanni Astarita <gastarit@redhat.com>
date Thu, 04 Apr 2013 16:55:58 -0400
parents
children
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://icedtea.classpath.org/thermostat/plugins/v1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://icedtea.classpath.org/thermostat/plugins/v1.0"
           elementFormDefault="qualified">


<!-- definition of simple elements -->
<xs:element name="name" type="xs:string"/>
<xs:element name="bundle" type="xs:string"/>
<xs:element name="dependency" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="short" type="xs:string"/>
<xs:element name="long" type="xs:string"/>
<xs:element name="argument" type="xs:string"/>
<xs:element name="required" type="xs:boolean"/>


<!-- definition of complex elements -->
<xs:element name="plugin">
  <xs:complexType>
    <xs:choice>
      <xs:sequence>
        <xs:element ref="commands"/>
        <xs:element ref="extensions" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
      <xs:element ref="extensions"/>
    </xs:choice>
  </xs:complexType>
</xs:element>


<xs:element name="commands">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="command" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:element name="extensions">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="extension" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="extension">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="bundles"/>
      <xs:element ref="dependencies" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="command">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="description"/>
      <xs:element ref="options"/>
      <xs:element ref="bundles"/>
      <xs:element ref="dependencies"/>
    </xs:sequence>
  </xs:complexType>
</xs:element> 


<xs:element name="options">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="group" minOccurs="0" maxOccurs="1"/>
      <xs:element ref="option" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="group">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="required" minOccurs="0" maxOccurs="1"/>
      <xs:element ref="option" minOccurs="2" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="option">
  <xs:complexType>
    <xs:sequence>
      <xs:choice>
        <xs:sequence>
          <xs:element ref="long"/>
          <xs:element ref="short" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:element ref="short"/>
      </xs:choice>
      <xs:element ref="argument" minOccurs="0" maxOccurs="1"/>
      <xs:element ref="required" minOccurs="0" maxOccurs="1"/>
      <xs:element ref="description" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="common" type="xs:boolean" use="optional"/>
  </xs:complexType>
</xs:element>


<xs:element name="bundles">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="bundle" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="dependencies">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="dependency" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


</xs:schema>