The Add-on XSD

XSD for download (Download add-on.xsd).

<xs:schema xmlns="http://smartics.de/xsd/projectdoc/add-on/1" targetNamespace="http://smartics.de/xsd/projectdoc/add-on/1" elementFormDefault="qualified">
  <xs:element name="add-on">
    <xs:annotation>
      <xs:documentation>
        Information provided for all domain objects.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="categories" type="Categories">
          <xs:annotation>
            <xs:documentation>
              List of categories for document types.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="default-locale" type="xs:string">
        <xs:annotation>
          <xs:documentation>
            Specifies the supported default locale.
            Usually this is left blank so that the default locale is 
            English. Specify this only if English is not supported.
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="Categories">
    <xs:annotation>
      <xs:documentation>
        Information about a doctype category.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="category" maxOccurs="unbounded" type="Category">
        <xs:annotation>
          <xs:documentation>
            The information on one category.

            There must be at least one category that shows the supported
            locales.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Category">
    <xs:annotation>
      <xs:documentation>
        Information about a doctype category.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
        <xs:element name="resource-bundle" minOccurs="0" type="ResourceBundleCategory">
          <xs:annotation>
            <xs:documentation>
              Localized resources for the doctype.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID">
      <xs:annotation>
        <xs:documentation>
          The name of the category.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="ResourceBundleCategory">
    <xs:annotation>
      <xs:documentation>
        Defines the resource bundle for a category.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="l10n" maxOccurs="unbounded" type="L10nCategory">
        <xs:annotation>
          <xs:documentation>
            The resource for one locale.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="L10nCategory">
    <xs:annotation>
      <xs:documentation>
        Localized resources for a category.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="L10nName">
        <xs:annotation>
          <xs:documentation>
            The name of the category.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="locale" type="xs:string">
      <xs:annotation>
        <xs:documentation>
          The name of the locale this bundle provides text resources.

          If omitted the text resources are bound to the default.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="L10nName">
    <xs:annotation>
      <xs:documentation>
        Information on a resource name.
      </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="plural" type="xs:string">
          <xs:annotation>
            <xs:documentation>
              The plural form of the name.
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>