2 * xml resources for PMD-XML
\r
4 * License : The MIT License
\r
5 * Copyright(c) 2010 MikuToga Partners
\r
8 package jp.sourceforge.mikutoga.pmd.xml;
\r
10 import java.net.URI;
\r
11 import java.net.URISyntaxException;
\r
12 import javax.xml.XMLConstants;
\r
13 import javax.xml.parsers.DocumentBuilder;
\r
14 import javax.xml.parsers.DocumentBuilderFactory;
\r
15 import javax.xml.parsers.ParserConfigurationException;
\r
16 import javax.xml.validation.Schema;
\r
17 import javax.xml.validation.SchemaFactory;
\r
18 import jp.sourceforge.mikutoga.xml.XmlResourceResolver;
\r
19 import org.xml.sax.SAXException;
\r
24 public final class PmdXmlResources {
\r
26 public static final String NS_PMDXML =
\r
27 "http://mikutoga.sourceforge.jp/xml/ns/pmdxml/100923";
\r
28 public static final String SCHEMA_PMDXML =
\r
29 "http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-100923.xsd";
\r
30 public static final String DTD_PMDXML =
\r
31 "http://mikutoga.sourceforge.jp/xml/dtd/pmdxml-100923.dtd";
\r
32 public static final String VER_PMDXML =
\r
34 public static final String LOCAL_SCHEMA_PMDXML =
\r
35 "./resources/pmdxml-100923.xsd";
\r
36 public static final String LOCAL_DTD_PMDXML =
\r
37 "./resources/pmdxml-100923.dtd";
\r
39 public static final URI URI_SCHEMA_PMDXML = URI.create(SCHEMA_PMDXML);
\r
40 public static final URI URI_DTD_PMDXML = URI.create(DTD_PMDXML);
\r
41 public static final URI RES_SCHEMA_PMDXML;
\r
42 public static final URI RES_DTD_PMDXML;
\r
44 private static final Class THISCLASS = PmdXmlResources.class;
\r
47 Object dummy = new PmdXmlResources();
\r
51 THISCLASS.getResource(LOCAL_SCHEMA_PMDXML).toURI();
\r
53 THISCLASS.getResource(LOCAL_DTD_PMDXML).toURI();
\r
54 }catch(URISyntaxException e){
\r
55 throw new ExceptionInInitializerError(e);
\r
62 private PmdXmlResources(){
\r
64 assert this.getClass().equals(THISCLASS);
\r
68 public static DocumentBuilder newBuilder()
\r
69 throws SAXException, ParserConfigurationException {
\r
70 XmlResourceResolver resolver = new XmlResourceResolver();
\r
71 resolver.putURIMap(URI_SCHEMA_PMDXML, RES_SCHEMA_PMDXML);
\r
72 resolver.putURIMap(URI_DTD_PMDXML, RES_DTD_PMDXML);
\r
74 SchemaFactory schemaFactory =
\r
75 SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
\r
76 schemaFactory.setResourceResolver(resolver);
\r
77 Schema schema = schemaFactory.newSchema();
\r
79 DocumentBuilderFactory builderFactory =
\r
80 DocumentBuilderFactory.newInstance();
\r
81 builderFactory.setCoalescing(true);
\r
82 builderFactory.setExpandEntityReferences(true);
\r
83 builderFactory.setIgnoringComments(true);
\r
84 builderFactory.setIgnoringElementContentWhitespace(false);
\r
85 builderFactory.setNamespaceAware(true);
\r
86 builderFactory.setValidating(false);
\r
87 builderFactory.setSchema(schema);
\r
89 DocumentBuilder builder = builderFactory.newDocumentBuilder();
\r
90 builder.setEntityResolver(resolver);
\r