2 * xml resources for PMD-XML
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd.xml101009;
11 import java.net.URISyntaxException;
12 import javax.xml.XMLConstants;
13 import javax.xml.parsers.DocumentBuilder;
14 import javax.xml.parsers.DocumentBuilderFactory;
15 import javax.xml.parsers.ParserConfigurationException;
16 import javax.xml.validation.Schema;
17 import javax.xml.validation.SchemaFactory;
18 import jp.sourceforge.mikutoga.xml.XmlResourceResolver;
19 import org.xml.sax.ErrorHandler;
20 import org.xml.sax.SAXException;
23 * 101009形式XML各種リソースの定義。
25 public final class Xml101009Resources {
27 public static final String NS_PMDXML =
28 "http://mikutoga.sourceforge.jp/xml/ns/pmdxml/101009";
29 public static final String SCHEMA_PMDXML =
30 "http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-101009.xsd";
31 public static final String DTD_PMDXML =
32 "http://mikutoga.sourceforge.jp/xml/dtd/pmdxml-101009.dtd";
33 public static final String VER_PMDXML =
35 public static final String LOCAL_SCHEMA_PMDXML =
36 "resources/pmdxml-101009.xsd";
37 public static final String LOCAL_DTD_PMDXML =
38 "resources/pmdxml-101009.dtd";
40 public static final URI URI_SCHEMA_PMDXML = URI.create(SCHEMA_PMDXML);
41 public static final URI URI_DTD_PMDXML = URI.create(DTD_PMDXML);
42 public static final URI RES_SCHEMA_PMDXML;
43 public static final URI RES_DTD_PMDXML;
45 private static final Class THISCLASS = Xml101009Resources.class;
48 Object dummy = new Xml101009Resources();
52 THISCLASS.getResource(LOCAL_SCHEMA_PMDXML).toURI();
54 THISCLASS.getResource(LOCAL_DTD_PMDXML).toURI();
55 }catch(URISyntaxException e){
56 throw new ExceptionInInitializerError(e);
63 private Xml101009Resources(){
65 assert this.getClass().equals(THISCLASS);
71 * @param handler エラーハンドラ
73 * @throws SAXException パースエラー
74 * @throws ParserConfigurationException 構成エラー
76 public static DocumentBuilder newBuilder(ErrorHandler handler)
77 throws SAXException, ParserConfigurationException {
78 XmlResourceResolver resolver = new XmlResourceResolver();
79 resolver.putURIMap(URI_SCHEMA_PMDXML, RES_SCHEMA_PMDXML);
80 resolver.putURIMap(URI_DTD_PMDXML, RES_DTD_PMDXML);
82 SchemaFactory schemaFactory =
83 SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
84 schemaFactory.setResourceResolver(resolver);
85 schemaFactory.setErrorHandler(handler);
86 Schema schema = schemaFactory.newSchema();
88 DocumentBuilderFactory builderFactory =
89 DocumentBuilderFactory.newInstance();
90 builderFactory.setCoalescing(true);
91 builderFactory.setExpandEntityReferences(true);
92 builderFactory.setIgnoringComments(true);
93 builderFactory.setIgnoringElementContentWhitespace(false);
94 builderFactory.setNamespaceAware(true);
95 builderFactory.setValidating(false);
96 builderFactory.setSchema(schema);
98 DocumentBuilder builder = builderFactory.newDocumentBuilder();
99 builder.setEntityResolver(resolver);
100 builder.setErrorHandler(handler);