forked from phoedos/pmd
82 lines
3.4 KiB
XML
82 lines
3.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
|
<xs:element name="test-data">
|
|
<xs:complexType>
|
|
<xs:annotation>
|
|
<xs:documentation>You can mix these elements freely</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
|
<xs:choice>
|
|
<xs:element ref="test-code"/>
|
|
<xs:element name="code-fragment" type="code-fragmentType"/>
|
|
</xs:choice>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="test-code">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="description" type="xs:string"/>
|
|
<xs:element name="rule-property" type="rule-propertyType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="expected-problems" type="xs:nonNegativeInteger"/>
|
|
<xs:choice>
|
|
<xs:element name="code" type="xs:string"/>
|
|
<xs:element name="code-ref" type="code-refType"/>
|
|
</xs:choice>
|
|
<xs:element ref="source-type" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<!-- Reinitialize the rule for this test. For rules with caching (ie. XPath
|
|
rules with properties), only works if the rule was created with findRule -->
|
|
<xs:attribute name="reinitializeRule" type="xs:boolean" use="optional"/>
|
|
<!-- is the test a regression test, i.e. was it working in previous releases.
|
|
this defaults to true so that the attribute only needs to be set for failing tests -->
|
|
<xs:attribute name="regressionTest" type="xs:boolean" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:complexType name="rule-propertyType">
|
|
<xs:annotation>
|
|
<xs:documentation>The property set on the rule before the test</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="name" type="xs:string" use="required"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="code-fragmentType">
|
|
<xs:annotation>
|
|
<xs:documentation>Code fragment to be used in multiple test-codes</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="id" type="xs:string" use="required"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="code-refType">
|
|
<xs:annotation>
|
|
<xs:documentation>Reference to a code-fragment, ids should match</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:attribute name="id" type="xs:string" use="required"/>
|
|
</xs:complexType>
|
|
|
|
<xs:element name="source-type">
|
|
<xs:simpleType>
|
|
<xs:annotation>
|
|
<xs:documentation>Primary definition in LanguageVersion.java</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="java 1.3"/>
|
|
<xs:enumeration value="java 1.4"/>
|
|
<xs:enumeration value="java 1.5"/> <!-- default -->
|
|
<xs:enumeration value="java 1.6"/>
|
|
<xs:enumeration value="JSP"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:element>
|
|
</xs:schema>
|