當前位置: 首頁>>代碼示例>>Java>>正文


Java SAXParserFactory.setFeature方法代碼示例

本文整理匯總了Java中javax.xml.parsers.SAXParserFactory.setFeature方法的典型用法代碼示例。如果您正苦於以下問題:Java SAXParserFactory.setFeature方法的具體用法?Java SAXParserFactory.setFeature怎麽用?Java SAXParserFactory.setFeature使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.xml.parsers.SAXParserFactory的用法示例。


在下文中一共展示了SAXParserFactory.setFeature方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: retrieveJAXB

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Non-validating
 *
 * @param path   path to input file
 * @param _class class of xml root object
 * @return root object
 */
public static Object retrieveJAXB(String path, Class _class) {
    Object obj = null;
    /*
        Block parser from reaching out externally see:
        https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#SAXTransformerFactory
    */
    try {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
        spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
        spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

        Source xmlSource = new SAXSource(spf.newSAXParser().getXMLReader(),
                new InputSource(new FileReader(new File(path))));
        JAXBContext jc = JAXBContext.newInstance(_class);
        Unmarshaller um = jc.createUnmarshaller();
        obj = um.unmarshal(xmlSource);
    } catch (JAXBException | FileNotFoundException | SAXException | ParserConfigurationException e) {
        e.printStackTrace();
    }
    return obj;
}
 
開發者ID:phweda,項目名稱:MFM,代碼行數:30,代碼來源:PersistUtils.java

示例2: testValidMaxOccurLimitWithOutSecureProcessing

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
public void testValidMaxOccurLimitWithOutSecureProcessing() {
    if (isSecureMode())
        return; // jaxp secure feature can not be turned off when security
                // manager is present
    try {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, false);
        spf.setValidating(true);
        // Set the properties for Schema Validation
        String SCHEMA_LANG = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
        String SCHEMA_TYPE = "http://www.w3.org/2001/XMLSchema";
        // Get the Schema location as a File object
        File schemaFile = new File(this.getClass().getResource("toys3002.xsd").toURI());
        // Get the parser
        SAXParser parser = spf.newSAXParser();
        parser.setProperty(SCHEMA_LANG, SCHEMA_TYPE);
        parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", schemaFile);

        InputStream is = this.getClass().getResourceAsStream("toys.xml");
        MyErrorHandler eh = new MyErrorHandler();
        parser.parse(is, eh);
        Assert.assertFalse(eh.errorOccured, "Expected Error as maxOccurLimit is exceeded");

    } catch (Exception e) {
        Assert.fail("Exception occured: " + e.getMessage());
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:28,代碼來源:Bug6309988.java

示例3: testMaxOccurLimitPos

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Testing set MaxOccursLimit to 10000 in the secure processing enabled for
 * SAXParserFactory.
 *
 * @throws Exception If any errors occur.
 */
@Test
public void testMaxOccurLimitPos() throws Exception {
    String schema_file = XML_DIR + "toys.xsd";
    String xml_file = XML_DIR + "toys.xml";
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
    factory.setFeature(FEATURE_SECURE_PROCESSING, true);
    setSystemProperty(SP_MAX_OCCUR_LIMIT, String.valueOf(10000));
    SAXParser parser = factory.newSAXParser();
    parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
    parser.setProperty(JAXP_SCHEMA_SOURCE, new File(schema_file));
    try (InputStream is = new FileInputStream(xml_file)) {
        MyErrorHandler eh = new MyErrorHandler();
        parser.parse(is, eh);
        assertFalse(eh.isAnyError());
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:24,代碼來源:AuctionItemRepository.java

示例4: parseXML

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**Parses the XML to fetch parameters.
 * @param inputFile, source XML  
 * @return true, if XML is successfully parsed.
 * @throws Exception 
 */
public boolean parseXML(File inputFile,UIComponentRepo componentRepo) throws ParserConfigurationException, SAXException, IOException{
     LOGGER.debug("Parsing target XML for separating Parameters");
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser;
	try {
		factory.setFeature(Constants.DISALLOW_DOCTYPE_DECLARATION,true);
		saxParser = factory.newSAXParser();
		XMLHandler xmlhandler = new XMLHandler(componentRepo);
		saxParser.parse(inputFile, xmlhandler);
		return true;
	} catch (ParserConfigurationException | SAXException | IOException exception) {
		 LOGGER.error("Parsing failed...",exception);
		throw exception; 
	}
  }
 
開發者ID:capitalone,項目名稱:Hydrograph,代碼行數:21,代碼來源:XMLParser.java

示例5: testXMLNoNsAwareStreamResult4

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Test an identity transform of an XML document with NS decls using a
 * non-ns-aware parser. Output result to a StreamSource. Set ns-awareness to
 * TRUE and prefixes to TRUE.
 */
@Test
public void testXMLNoNsAwareStreamResult4() {
    try {
        // Create SAX parser *without* enabling ns
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setNamespaceAware(true); // Same as default
        spf.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
        SAXParser sp = spf.newSAXParser();

        // Make sure that the output is well formed
        String xml = runTransform(sp);
        checkWellFormedness(xml);
    } catch (Throwable ex) {
        Assert.fail(ex.toString());
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:22,代碼來源:Bug6594813.java

示例6: test

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
@Test
public void test() throws Exception {
    String invalidXml = "<a>";
    SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
    saxParserFactory.setFeature("http://apache.org/xml/features/continue-after-fatal-error", true);
    SAXParser parser = saxParserFactory.newSAXParser();
    parser.parse(new InputSource(new StringReader(invalidXml)), new DefaultHandler() {
        @Override
        public void fatalError(SAXParseException e) throws SAXException {
            System.err.printf("%s%n", e.getMessage());
        }
    });
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:14,代碼來源:HandleError.java

示例7: parse

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
@NonNull
private Document parse(@NonNull String xml, @NonNull InputSource input, boolean checkBom)
        throws ParserConfigurationException, SAXException, IOException {
    try {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        factory.setFeature(NAMESPACE_FEATURE, true);
        factory.setFeature(NAMESPACE_PREFIX_FEATURE, true);
        SAXParser parser = factory.newSAXParser();
        DomBuilder handler = new DomBuilder(xml);
        parser.parse(input, handler);
        return handler.getDocument();
    } catch (SAXException e) {
        if (checkBom && e.getMessage().contains("Content is not allowed in prolog")) {
            // Byte order mark in the string? Skip it. There are many markers
            // (see http://en.wikipedia.org/wiki/Byte_order_mark) so here we'll
            // just skip those up to the XML prolog beginning character, <
            xml = xml.replaceFirst("^([\\W]+)<","<");  //$NON-NLS-1$ //$NON-NLS-2$
            return parse(xml, new InputSource(new StringReader(xml)), false);
        }
        throw e;
    }
}
 
開發者ID:tranleduy2000,項目名稱:javaide,代碼行數:23,代碼來源:PositionXmlParser.java

示例8: testXMLNoNsAwareStreamResult3

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Test an identity transform of an XML document with NS decls using a
 * non-ns-aware parser. Output result to a StreamSource. Set ns-awareness to
 * TRUE and prefixes to FALSE.
 */
@Test
public void testXMLNoNsAwareStreamResult3() {
    try {
        // Create SAX parser *without* enabling ns
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setNamespaceAware(true); // Same as default
        spf.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
        SAXParser sp = spf.newSAXParser();

        // Make sure that the output is well formed
        String xml = runTransform(sp);
        checkWellFormedness(xml);
    } catch (Throwable ex) {
        Assert.fail(ex.toString());
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:22,代碼來源:Bug6594813.java

示例9: newSAXParserFactory

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
public static SAXParserFactory newSAXParserFactory(boolean disableSecurity) {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    String featureToSet = XMLConstants.FEATURE_SECURE_PROCESSING;
    try {
        boolean securityOn = !xmlSecurityDisabled(disableSecurity);
        factory.setFeature(featureToSet, securityOn);
        factory.setNamespaceAware(true);
        if (securityOn) {
            featureToSet = DISALLOW_DOCTYPE_DECL;
            factory.setFeature(featureToSet, true);
            featureToSet = EXTERNAL_GE;
            factory.setFeature(featureToSet, false);
            featureToSet = EXTERNAL_PE;
            factory.setFeature(featureToSet, false);
            featureToSet = LOAD_EXTERNAL_DTD;
            factory.setFeature(featureToSet, false);
        }
    } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
        LOGGER.log(Level.WARNING, "Factory [{0}] doesn't support "+featureToSet+" feature!", new Object[]{factory.getClass().getName()});
    }
    return factory;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:23,代碼來源:XmlUtil.java

示例10: testXMLNoNsAwareStreamResult1

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Test an identity transform of an XML document with NS decls using a
 * non-ns-aware parser. Output result to a StreamSource. Set ns-awareness to
 * FALSE and prefixes to FALSE.
 */
@Test
public void testXMLNoNsAwareStreamResult1() {
    try {
        // Create SAX parser *without* enabling ns
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setNamespaceAware(false); // Same as default
        spf.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
        SAXParser sp = spf.newSAXParser();

        // Make sure that the output is well formed
        String xml = runTransform(sp);
        checkWellFormedness(xml);
    } catch (Throwable ex) {
        Assert.fail(ex.toString());
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:22,代碼來源:Bug6594813.java

示例11: testConformantSAX

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
@Test
public void testConformantSAX() throws ParserConfigurationException, SAXException, IOException {
    InputStream xmlFile = getClass().getResourceAsStream("Bug6564400.xml");

    // Parse with SAX
    SAXParserFactory saxFactory = SAXParserFactory.newInstance();
    saxFactory.setSchema(schema);
    saxFactory.setFeature("http://java.sun.com/xml/schema/features/report-ignored-element-content-whitespace", true);

    SAXParser saxparser = saxFactory.newSAXParser();

    sawIgnorable = false;
    saxparser.parse(xmlFile, new MyHandler());
    Assert.assertEquals(false, sawIgnorable);
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:16,代碼來源:Bug6564400.java

示例12: testSaxExcludeHTMLReferences

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * <p><b>Description:</b> Exclude External references. Load files only once.<p>
 * <p><b>Bug ID:</b> #9</p>
 *
 * @author adrian_sorop
 *
 * @throws Exception
 */
public void testSaxExcludeHTMLReferences() throws Exception {

  File ditaFile = new File(rootDir,"topics/add-terms-list.dita");
  assertTrue("UNABLE TO LOAD FILE", ditaFile.exists());
  URL url = URLUtil.correct(ditaFile);
  SAXParserFactory factory = SAXParserFactory.newInstance();
  // Ignore the DTD declaration
  factory.setValidating(false);
  factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
  factory.setFeature("http://xml.org/sax/features/validation", false);
  SAXParser parser = factory.newSAXParser();
  SaxContentHandler handler= new SaxContentHandler(url);
  parser.parse(ditaFile, handler);
  List<ReferencedResource> referredFiles = new ArrayList<ReferencedResource>();
  referredFiles.addAll(handler.getDitaMapHrefs());
  
  for (ReferencedResource referencedResource : referredFiles) {
    System.out.println(referencedResource);
  }
  
  assertEquals("Four files should have been referred.", 4, referredFiles.size());
  assertTrue(referredFiles.toString().contains("issue-9/topics/dictionaries-preferences-page.dita"));
  assertTrue(referredFiles.toString().contains("issue-9/topics/add-Hunspell-dictionary.dita"));
  assertTrue(referredFiles.toString().contains("issue-9/topics/topic2.dita"));
  assertTrue(referredFiles.toString().contains("issue-9/topics/topic1.dita"));
}
 
開發者ID:oxygenxml,項目名稱:oxygen-dita-translation-package-builder,代碼行數:35,代碼來源:AttributesCollectorUsingSaxTest.java

示例13: testFeature10

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Test the functionality of setFeature method for
 * external-parameter-entitie property.
 * @throws Exception If any errors occur.
 */
@Test
public void testFeature10() throws Exception {
    SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setFeature(EXTERNAL_P_ENTITIES, false);
    assertFalse(spf.getFeature(EXTERNAL_P_ENTITIES));
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:12,代碼來源:SAXParserFactTest.java

示例14: createBuilder

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
private SAXBuilder createBuilder()
{
	return new SAXBuilder(new XMLReaderJDOMFactory()
	{
		@Override
		public XMLReader createXMLReader() throws JDOMException
		{
			SAXParserFactory fac = SAXParserFactory.newInstance();
			// All JDOM parsers are namespace aware.
			fac.setNamespaceAware(true);
			fac.setValidating(false);
			try
			{
				fac.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
				return fac.newSAXParser().getXMLReader();
			}
			catch (ParserConfigurationException | SAXException e)
			{
				throw new RuntimeException(e);
			}
		}

		@Override
		public boolean isValidating()
		{
			return false;
		}
	}, null, null);
}
 
開發者ID:equella,項目名稱:Equella,代碼行數:30,代碼來源:RssPortletRenderer.java

示例15: testFeature06

import javax.xml.parsers.SAXParserFactory; //導入方法依賴的package包/類
/**
 * Test the functionality of setFeature and getFeature methods
 * for validation property.
 * @throws Exception If any errors occur.
 */
@Test
public void testFeature06() throws Exception {
    SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setFeature(VALIDATION, true);
    assertTrue(spf.getFeature(VALIDATION));
    spf.setFeature(VALIDATION, false);
    assertFalse(spf.getFeature(VALIDATION));
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:14,代碼來源:SAXParserFactTest.java


注:本文中的javax.xml.parsers.SAXParserFactory.setFeature方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。