< prev index next >

src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/dtd/bindinfo/BindInfo.java

Print this page


   1 /*
   2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.tools.internal.xjc.reader.dtd.bindinfo;
  27 
  28 import java.io.IOException;

  29 import java.util.Collection;
  30 import java.util.HashMap;
  31 import java.util.Map;
  32 
  33 import javax.xml.parsers.ParserConfigurationException;
  34 import javax.xml.parsers.SAXParserFactory;

  35 import javax.xml.validation.ValidatorHandler;
  36 
  37 import com.sun.codemodel.internal.ClassType;
  38 import com.sun.codemodel.internal.JClass;
  39 import com.sun.codemodel.internal.JClassAlreadyExistsException;
  40 import com.sun.codemodel.internal.JCodeModel;
  41 import com.sun.codemodel.internal.JDefinedClass;
  42 import com.sun.codemodel.internal.JPackage;
  43 import com.sun.istack.internal.SAXParseException2;
  44 import com.sun.tools.internal.xjc.AbortException;
  45 import com.sun.tools.internal.xjc.ErrorReceiver;
  46 import com.sun.tools.internal.xjc.SchemaCache;
  47 import com.sun.tools.internal.xjc.model.CCustomizations;
  48 import com.sun.tools.internal.xjc.model.CPluginCustomization;
  49 import com.sun.tools.internal.xjc.model.Model;
  50 import com.sun.tools.internal.xjc.reader.Const;
  51 import com.sun.tools.internal.xjc.util.CodeModelClassFactory;
  52 import com.sun.tools.internal.xjc.util.ErrorReceiverFilter;
  53 import com.sun.tools.internal.xjc.util.ForkContentHandler;
  54 


 272 //
 273 //    Internal utility methods
 274 //
 275 //
 276 
 277 
 278     /** Gets the value from the option element. */
 279     private String getOption(String attName, String defaultValue) {
 280         Element opt = DOMUtil.getElement(dom,"options");
 281         if (opt != null) {
 282             String s = DOMUtil.getAttribute(opt,attName);
 283             if (s != null)
 284                 return s;
 285         }
 286         return defaultValue;
 287     }
 288 
 289     /**
 290      * Lazily parsed schema for the binding file.
 291      */
 292     private static SchemaCache bindingFileSchema = new SchemaCache(BindInfo.class.getResource("bindingfile.xsd"));







 293 
 294     /**
 295      * Parses an InputSource into dom4j Document.
 296      * Returns null in case of an exception.
 297      */
 298     private static Document parse( Model model, InputSource is, ErrorReceiver receiver ) throws AbortException {
 299         try {
 300             ValidatorHandler validator = bindingFileSchema.newValidator();
 301 
 302             // set up the pipe line as :
 303             //              /-> extensionChecker -> validator
 304             //   parser-> -<
 305             //              \-> DOM builder
 306             SAXParserFactory pf = XmlFactory.createParserFactory(model.options.disableXmlSecurity);
 307             DocumentBuilderFactory domFactory = XmlFactory.createDocumentBuilderFactory(model.options.disableXmlSecurity);
 308             DOMBuilder builder = new DOMBuilder(domFactory);
 309 
 310             ErrorReceiverFilter controller = new ErrorReceiverFilter(receiver);
 311             validator.setErrorHandler(controller);
 312             XMLReader reader = pf.newSAXParser().getXMLReader();


   1 /*
   2  * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.tools.internal.xjc.reader.dtd.bindinfo;
  27 
  28 import java.io.IOException;
  29 import java.io.InputStream;
  30 import java.util.Collection;
  31 import java.util.HashMap;
  32 import java.util.Map;
  33 
  34 import javax.xml.parsers.ParserConfigurationException;
  35 import javax.xml.parsers.SAXParserFactory;
  36 import javax.xml.transform.stream.StreamSource;
  37 import javax.xml.validation.ValidatorHandler;
  38 
  39 import com.sun.codemodel.internal.ClassType;
  40 import com.sun.codemodel.internal.JClass;
  41 import com.sun.codemodel.internal.JClassAlreadyExistsException;
  42 import com.sun.codemodel.internal.JCodeModel;
  43 import com.sun.codemodel.internal.JDefinedClass;
  44 import com.sun.codemodel.internal.JPackage;
  45 import com.sun.istack.internal.SAXParseException2;
  46 import com.sun.tools.internal.xjc.AbortException;
  47 import com.sun.tools.internal.xjc.ErrorReceiver;
  48 import com.sun.tools.internal.xjc.SchemaCache;
  49 import com.sun.tools.internal.xjc.model.CCustomizations;
  50 import com.sun.tools.internal.xjc.model.CPluginCustomization;
  51 import com.sun.tools.internal.xjc.model.Model;
  52 import com.sun.tools.internal.xjc.reader.Const;
  53 import com.sun.tools.internal.xjc.util.CodeModelClassFactory;
  54 import com.sun.tools.internal.xjc.util.ErrorReceiverFilter;
  55 import com.sun.tools.internal.xjc.util.ForkContentHandler;
  56 


 274 //
 275 //    Internal utility methods
 276 //
 277 //
 278 
 279 
 280     /** Gets the value from the option element. */
 281     private String getOption(String attName, String defaultValue) {
 282         Element opt = DOMUtil.getElement(dom,"options");
 283         if (opt != null) {
 284             String s = DOMUtil.getAttribute(opt,attName);
 285             if (s != null)
 286                 return s;
 287         }
 288         return defaultValue;
 289     }
 290 
 291     /**
 292      * Lazily parsed schema for the binding file.
 293      */
 294     private static SchemaCache bindingFileSchema = new SchemaCache(newStreamSource("bindingfile.xsd"));
 295 
 296     private static StreamSource newStreamSource(String systemId) {
 297         InputStream is = BindInfo.class.getResourceAsStream(systemId);
 298         StreamSource schema = new StreamSource(is);
 299         schema.setSystemId(systemId);
 300         return schema;
 301     }
 302 
 303     /**
 304      * Parses an InputSource into dom4j Document.
 305      * Returns null in case of an exception.
 306      */
 307     private static Document parse( Model model, InputSource is, ErrorReceiver receiver ) throws AbortException {
 308         try {
 309             ValidatorHandler validator = bindingFileSchema.newValidator();
 310 
 311             // set up the pipe line as :
 312             //              /-> extensionChecker -> validator
 313             //   parser-> -<
 314             //              \-> DOM builder
 315             SAXParserFactory pf = XmlFactory.createParserFactory(model.options.disableXmlSecurity);
 316             DocumentBuilderFactory domFactory = XmlFactory.createDocumentBuilderFactory(model.options.disableXmlSecurity);
 317             DOMBuilder builder = new DOMBuilder(domFactory);
 318 
 319             ErrorReceiverFilter controller = new ErrorReceiverFilter(receiver);
 320             validator.setErrorHandler(controller);
 321             XMLReader reader = pf.newSAXParser().getXMLReader();


< prev index next >