The Projectmetadata XSD

Basic Structure

The basic structure defined by the XSD.

<projectMetaData>
  <metaData>
    <name></name>
    <homepage></homepage>
    <description></description>
    <category></category>
    <subcategory></subcategory>

    <files>
      <projectLocation></projectLocation>
      <archiveLocation></archiveLocation>
      <filter>
        <includes>
          <include></include>
          ...
        </includes>
        <excludes>
          <exclude></exclude>
          ...
        </excludes>
      </filter>
    </files>
  </metaData>
</projectMetaData>

The XSD

The XSD for reference (Download projectmetadata.xsd).

<xs:schema xmlns="http://smartics.de/projectmetadata/1" targetNamespace="http://smartics.de/projectmetadata/1" elementFormDefault="qualified">
  <xs:element name="projectMetaData">
    <xs:annotation>
      <xs:documentation source="description">
        A list of metadata sources.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="metaData" minOccurs="0" maxOccurs="unbounded" type="Metadata">
          <xs:annotation>
            <xs:documentation source="description">
              Metadata provided by a certain report.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="Metadata">
    <xs:annotation>
      <xs:documentation source="description">
        Metadata provided by a certain report.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The name of the meta data used to identify it.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="homepage" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The optional link to the homepage of the tool that created the
            report.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="description" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The optional description to the meta data and tool.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="category" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The main category of the report.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subcategory" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The subcategory of the report.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="files" type="Files">
        <xs:annotation>
          <xs:documentation source="description">
            The subcategory of the report.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Files">
    <xs:annotation>
      <xs:documentation source="description">
        The location of the generated files that are to be included in the
        generated attached artifact to the project.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="projectLocation" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The root location where the referenced files are located.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="archiveLocation" type="xs:string">
        <xs:annotation>
          <xs:documentation source="description">
            The location where the reports are to be written to within the
            generated attached artifact.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="filter" minOccurs="0">
        <xs:annotation>
          <xs:documentation source="description">
            The descriptor of the files to be included.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="includes" minOccurs="0">
              <xs:annotation>
                <xs:documentation source="description">
                  The following resources are included.
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="include" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation source="description">
                        The resource within 'projectLocation' to include.
                      </xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="excludes" minOccurs="0">
              <xs:annotation>
                <xs:documentation source="description">
                  The following resources are excluded.
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="exclude" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation source="description">
                        The resource within 'projectLocation' to exclude.
                      </xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>