Beispiel #1
0
  /** @see org.castor.xml.InternalContext#getXMLReader(java.lang.String) */
  public XMLReader getXMLReader(final String features) {
    XMLReader reader = null;
    Boolean validation = _configuration.getBoolean(XMLConfiguration.PARSER_VALIDATION);
    Boolean namespaces = _configuration.getBoolean(XMLConfiguration.NAMESPACES);

    String readerClassName = _configuration.getString(XMLConfiguration.PARSER);

    if (readerClassName == null || readerClassName.length() == 0) {
      SAXParser saxParser =
          XMLParserUtils.getSAXParser(validation.booleanValue(), namespaces.booleanValue());
      if (saxParser != null) {
        try {
          reader = saxParser.getXMLReader();
        } catch (SAXException e) {
          LOG.error(Messages.format("conf.configurationError", e));
        }
      }
    }

    if (reader == null) {
      if ((readerClassName == null)
          || (readerClassName.length() == 0)
          || (readerClassName.equalsIgnoreCase("xerces"))) {
        readerClassName = "org.apache.xerces.parsers.SAXParser";
      }

      reader = XMLParserUtils.instantiateXMLReader(readerClassName);
    }

    XMLParserUtils.setFeaturesOnXmlReader(
        _configuration.getString(XMLConfiguration.PARSER_FEATURES, features),
        _configuration.getString(XMLConfiguration.PARSER_FEATURES_DISABLED, ""),
        validation.booleanValue(),
        namespaces.booleanValue(),
        reader);

    return reader;
  } // -- getXMLReader