Clarify namespace, version, pmdVersion
This commit is contained in:
@ -36,8 +36,9 @@ import net.sourceforge.pmd.util.StringUtil;
|
||||
*
|
||||
*/
|
||||
public final class XMLRenderer implements CPDReportRenderer {
|
||||
private static final String NAMESPACE_URI = "https://pmd-code.org/ns/cpd-report/1.0.0";
|
||||
private static final String NAMESPACE_LOCATION = "https://pmd-code.org/ns/cpd-report_1_0_0.xsd";
|
||||
private static final String NAMESPACE_URI = "https://pmd-code.org/schema/cpd-report";
|
||||
private static final String NAMESPACE_LOCATION = "https://pmd.github.io/schema/cpd-report_1_0_0.xsd";
|
||||
private static final String SCHEMA_VERSION = "1.0.0";
|
||||
|
||||
private String encoding;
|
||||
|
||||
@ -103,7 +104,8 @@ public final class XMLRenderer implements CPDReportRenderer {
|
||||
final Element root = doc.createElementNS(NAMESPACE_URI, "pmd-cpd");
|
||||
root.setAttributeNS(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi:schemaLocation", NAMESPACE_URI + " " + NAMESPACE_LOCATION);
|
||||
|
||||
root.setAttributeNS(NAMESPACE_URI, "version", PMDVersion.VERSION);
|
||||
root.setAttributeNS(NAMESPACE_URI, "version", SCHEMA_VERSION);
|
||||
root.setAttributeNS(NAMESPACE_URI, "pmdVersion", PMDVersion.VERSION);
|
||||
root.setAttributeNS(NAMESPACE_URI, "timestamp", OffsetDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
|
||||
final Map<FileId, Integer> numberOfTokensPerFile = report.getNumberOfTokensPerFile();
|
||||
doc.appendChild(root);
|
||||
|
@ -1,10 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<xs:schema
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="https://pmd-code.org/ns/cpd-report/1.0.0"
|
||||
targetNamespace="https://pmd-code.org/ns/cpd-report/1.0.0"
|
||||
xmlns="https://pmd-code.org/schema/cpd-report" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="https://pmd-code.org/schema/cpd-report"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<xsd:annotation>
|
||||
<xs:documentation><![CDATA[
|
||||
PMD CPD Report Schema, version 1.0.0
|
||||
|
||||
This XML format is produced by CPD's XMLRenderer "xml".
|
||||
]]></xs:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xs:element name="pmd-cpd">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
@ -13,6 +21,7 @@
|
||||
<xs:element name="error" type="error" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="xs:string" use="required"/>
|
||||
<xs:attribute name="pmdVersion" type="xs:string" use="required"/>
|
||||
<xs:attribute name="timestamp" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
@ -57,14 +57,15 @@ class XMLRendererTest {
|
||||
assertReportIsValidSchema(report);
|
||||
|
||||
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
+ "<pmd-cpd xmlns=\"https://pmd-code.org/ns/cpd-report/1.0.0\"\n"
|
||||
+ "<pmd-cpd xmlns=\"https://pmd-code.org/schema/cpd-report\"\n"
|
||||
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
|
||||
+ " pmdVersion=\"XXX\"\n"
|
||||
+ " timestamp=\"XXX\"\n"
|
||||
+ " version=\"XXX\"\n"
|
||||
+ " xsi:schemaLocation=\"https://pmd-code.org/ns/cpd-report/1.0.0 https://pmd-code.org/ns/cpd-report_1_0_0.xsd\"/>\n",
|
||||
report.replaceAll(" {4}timestamp=\".+?\"", " timestamp=\"XXX\"")
|
||||
.replaceAll(" {4}version=\".+?\"", " version=\"XXX\""),
|
||||
"namespace is missing");
|
||||
+ " version=\"1.0.0\"\n"
|
||||
+ " xsi:schemaLocation=\"https://pmd-code.org/schema/cpd-report https://pmd.github.io/schema/cpd-report_1_0_0.xsd\"/>\n",
|
||||
report.replaceAll("timestamp=\".+?\"", "timestamp=\"XXX\"")
|
||||
.replaceAll("pmdVersion=\".+?\"", "pmdVersion=\"XXX\""),
|
||||
"namespace is missing or wrong");
|
||||
|
||||
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
|
||||
.parse(new ByteArrayInputStream(report.getBytes(ENCODING)));
|
||||
|
Reference in New Issue
Block a user