472 catch (SAXException e) {} 473 } 474 475 try { 476 factory.setFeature(Constants.NAMESPACE_FEATURE,true); 477 } 478 catch (Exception e) { 479 factory.setNamespaceAware(true); 480 } 481 final SAXParser parser = factory.newSAXParser(); 482 try { 483 parser.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, 484 _xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_DTD)); 485 } catch (SAXNotRecognizedException e) { 486 ErrorMsg err = new ErrorMsg(ErrorMsg.WARNING_MSG, 487 parser.getClass().getName() + ": " + e.getMessage()); 488 reportError(WARNING, err); 489 } 490 491 final XMLReader reader = parser.getXMLReader(); 492 try { 493 XMLSecurityManager securityManager = 494 (XMLSecurityManager)_xsltc.getProperty(XalanConstants.SECURITY_MANAGER); 495 for (XMLSecurityManager.Limit limit : XMLSecurityManager.Limit.values()) { 496 reader.setProperty(limit.apiProperty(), securityManager.getLimitValueAsString(limit)); 497 } 498 if (securityManager.printEntityCountInfo()) { 499 parser.setProperty(XalanConstants.JDK_ENTITY_COUNT_INFO, XalanConstants.JDK_YES); 500 } 501 } catch (SAXException se) { 502 System.err.println("Warning: " + reader.getClass().getName() + ": " 503 + se.getMessage()); 504 } 505 506 return(parse(reader, input)); 507 } 508 catch (ParserConfigurationException e) { 509 ErrorMsg err = new ErrorMsg(ErrorMsg.SAX_PARSER_CONFIG_ERR); 510 reportError(ERROR, err); 511 } 512 catch (SAXParseException e){ 513 reportError(ERROR, new ErrorMsg(e.getMessage(),e.getLineNumber())); 514 } 515 catch (SAXException e) { 516 reportError(ERROR, new ErrorMsg(e.getMessage())); 517 } 518 return null; 519 } 520 521 public SyntaxTreeNode getDocumentRoot() { 522 return _root; 523 } | 472 catch (SAXException e) {} 473 } 474 475 try { 476 factory.setFeature(Constants.NAMESPACE_FEATURE,true); 477 } 478 catch (Exception e) { 479 factory.setNamespaceAware(true); 480 } 481 final SAXParser parser = factory.newSAXParser(); 482 try { 483 parser.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, 484 _xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_DTD)); 485 } catch (SAXNotRecognizedException e) { 486 ErrorMsg err = new ErrorMsg(ErrorMsg.WARNING_MSG, 487 parser.getClass().getName() + ": " + e.getMessage()); 488 reportError(WARNING, err); 489 } 490 491 final XMLReader reader = parser.getXMLReader(); 492 String lastProperty = ""; 493 try { 494 XMLSecurityManager securityManager = 495 (XMLSecurityManager)_xsltc.getProperty(XalanConstants.SECURITY_MANAGER); 496 for (XMLSecurityManager.Limit limit : XMLSecurityManager.Limit.values()) { 497 lastProperty = limit.apiProperty(); 498 reader.setProperty(lastProperty, securityManager.getLimitValueAsString(limit)); 499 } 500 if (securityManager.printEntityCountInfo()) { 501 lastProperty = XalanConstants.JDK_ENTITY_COUNT_INFO; 502 parser.setProperty(XalanConstants.JDK_ENTITY_COUNT_INFO, XalanConstants.JDK_YES); 503 } 504 } catch (SAXException se) { 505 XMLSecurityManager.printWarning(reader.getClass().getName(), lastProperty, se); 506 } 507 508 return(parse(reader, input)); 509 } 510 catch (ParserConfigurationException e) { 511 ErrorMsg err = new ErrorMsg(ErrorMsg.SAX_PARSER_CONFIG_ERR); 512 reportError(ERROR, err); 513 } 514 catch (SAXParseException e){ 515 reportError(ERROR, new ErrorMsg(e.getMessage(),e.getLineNumber())); 516 } 517 catch (SAXException e) { 518 reportError(ERROR, new ErrorMsg(e.getMessage())); 519 } 520 return null; 521 } 522 523 public SyntaxTreeNode getDocumentRoot() { 524 return _root; 525 } |