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.ErrorHandler;
\r
20 import org.xml.sax.SAXException;
\r
25 public final class PmdXmlResources {
\r
27 public static final String NS_PMDXML =
\r
28 "http://mikutoga.sourceforge.jp/xml/ns/pmdxml/101009";
\r
29 public static final String SCHEMA_PMDXML =
\r
30 "http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-101009.xsd";
\r
31 public static final String DTD_PMDXML =
\r
32 "http://mikutoga.sourceforge.jp/xml/dtd/pmdxml-101009.dtd";
\r
33 public static final String VER_PMDXML =
\r
35 public static final String LOCAL_SCHEMA_PMDXML =
\r
36 "resources/pmdxml-101009.xsd";
\r
37 public static final String LOCAL_DTD_PMDXML =
\r
38 "resources/pmdxml-101009.dtd";
\r
40 public static final URI URI_SCHEMA_PMDXML = URI.create(SCHEMA_PMDXML);
\r
41 public static final URI URI_DTD_PMDXML = URI.create(DTD_PMDXML);
\r
42 public static final URI RES_SCHEMA_PMDXML;
\r
43 public static final URI RES_DTD_PMDXML;
\r
45 private static final Class THISCLASS = PmdXmlResources.class;
\r
48 Object dummy = new PmdXmlResources();
\r
52 THISCLASS.getResource(LOCAL_SCHEMA_PMDXML).toURI();
\r
54 THISCLASS.getResource(LOCAL_DTD_PMDXML).toURI();
\r
55 }catch(URISyntaxException e){
\r
56 throw new ExceptionInInitializerError(e);
\r
63 private PmdXmlResources(){
\r
65 assert this.getClass().equals(THISCLASS);
\r
71 * @param handler エラーハンドラ
\r
73 * @throws SAXException パースエラー
\r
74 * @throws ParserConfigurationException 構成エラー
\r
76 public static DocumentBuilder newBuilder(ErrorHandler handler)
\r
77 throws SAXException, ParserConfigurationException {
\r
78 XmlResourceResolver resolver = new XmlResourceResolver();
\r
79 resolver.putURIMap(URI_SCHEMA_PMDXML, RES_SCHEMA_PMDXML);
\r
80 resolver.putURIMap(URI_DTD_PMDXML, RES_DTD_PMDXML);
\r
82 SchemaFactory schemaFactory =
\r
83 SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
\r
84 schemaFactory.setResourceResolver(resolver);
\r
85 schemaFactory.setErrorHandler(handler);
\r
86 Schema schema = schemaFactory.newSchema();
\r
88 DocumentBuilderFactory builderFactory =
\r
89 DocumentBuilderFactory.newInstance();
\r
90 builderFactory.setCoalescing(true);
\r
91 builderFactory.setExpandEntityReferences(true);
\r
92 builderFactory.setIgnoringComments(true);
\r
93 builderFactory.setIgnoringElementContentWhitespace(false);
\r
94 builderFactory.setNamespaceAware(true);
\r
95 builderFactory.setValidating(false);
\r
96 builderFactory.setSchema(schema);
\r
98 DocumentBuilder builder = builderFactory.newDocumentBuilder();
\r
99 builder.setEntityResolver(resolver);
\r
100 builder.setErrorHandler(handler);
\r