{"id":78,"date":"2008-05-05T14:21:34","date_gmt":"2008-05-05T18:21:34","guid":{"rendered":"http:\/\/www.prglab.com\/blog\/p\/78"},"modified":"2008-05-05T14:21:34","modified_gmt":"2008-05-05T18:21:34","slug":"java%e6%80%8e%e6%a0%b7%e9%aa%8c%e8%af%81xml%e6%96%87%e4%bb%b6%e6%98%af%e5%90%a6%e7%ac%a6%e5%90%88schema%e5%ae%9a%e4%b9%89","status":"publish","type":"post","link":"https:\/\/www.prglab.com\/blog\/p\/78","title":{"rendered":"[JAVA]\u600e\u6837\u9a8c\u8bc1XML\u6587\u4ef6\u662f\u5426\u7b26\u5408schema\u5b9a\u4e49"},"content":{"rendered":"<p>\u4e24\u79cd\u65b9\u6cd5\uff1a<\/p>\n<p>1\u3002 \u4f7f\u7528SAX\u89e3\u6790\uff1a<br \/>\n[java]<br \/>\n\/***<br \/>\n* @param xmlPath &#8211; XML\u6587\u4ef6\u8def\u5f84<br \/>\n* @param schemaPath &#8211; Schema\u6587\u4ef6\u8def\u5f84<br \/>\n*\/<br \/>\npublic void saxValidation(String xmlPath, String schemaPath){<br \/>\ntry {<br \/>\nSAXParserFactory saxParserFactory = SAXParserFactory.newInstance();<br \/>\nsaxParserFactory.setNamespaceAware(true);<br \/>\nsaxParserFactory.setValidating(true);<br \/>\nSAXParser saxParser = saxParserFactory.newSAXParser();<br \/>\nsaxParser.setProperty(&#8220;http:\/\/java.sun.com\/xml\/jaxp\/properties\/schemaLanguage&#8221;, &#8220;http:\/\/www.w3.org\/2001\/XMLSchema&#8221;);<br \/>\nsaxParser.setProperty(&#8220;http:\/\/java.sun.com\/xml\/jaxp\/properties\/schemaSource&#8221;, schemaPath);<br \/>\nDefaultHandler handler = new DefaultHandler();<br \/>\nsaxParser.parse(xmlPath, handler);<br \/>\n} catch(SAXException exc) {<br \/>\nexc.printStackTrace();<br \/>\n}<br \/>\n}<br \/>\n[\/java]<\/p>\n<p>2\u3002 \u4f7f\u7528DOM\u89e3\u6790\uff1a<br \/>\n[java]<br \/>\n\/***<br \/>\n* @param xmlPath &#8211; XML\u6587\u4ef6\u8def\u5f84<br \/>\n* @param schemaPath &#8211; Schema\u6587\u4ef6\u8def\u5f84<br \/>\n*\/<br \/>\npublic void domValidation(String xmlPath, String schemaPath){<br \/>\ntry {<br \/>\nDocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();<br \/>\ndocBuilderFactory.setNamespaceAware(true);<br \/>\ndocBuilderFactory.setValidating(true);<br \/>\ndocBuilderFactory.setAttribute(&#8220;http:\/\/java.sun.com\/xml\/jaxp\/properties\/schemaLanguage&#8221;, &#8220;http:\/\/www.w3.org\/2001\/XMLSchema&#8221;);<br \/>\ndocBuilderFactory.setAttribute(&#8220;http:\/\/java.sun.com\/xml\/jaxp\/properties\/schemaSource&#8221;, schemaPath);<br \/>\nDocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();<br \/>\nDocument doc = docBuilder.parse(xmlPath);<br \/>\n} catch(DOMException exc) {<br \/>\nexc.printStackTrace();<br \/>\n}<br \/>\n}<br \/>\n[\/java]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e24\u79cd\u65b9\u6cd5\uff1a 1\u3002 \u4f7f\u7528SAX\u89e3\u6790\uff1a [java] \/*** * @param xmlPath &#8211; XML\u6587\u4ef6\u8def\u5f84 * @param schemaPath &#8211; Schema\u6587\u4ef6\u8def\u5f84 *\/ public void saxValidation(String xmlPath, String schemaPath){ try { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); saxParserFactory.setNamespaceAware(true); saxParserFactory.setValidating(true); SAXParser saxParser = saxParserFactory.newSAXParser(); saxParser.setProperty(&#8220;http:\/\/java.sun.com\/xml\/jaxp\/properties\/schemaLanguage&#8221;, &#8220;http:\/\/www.w3.org\/2001\/XMLSchema&#8221;); saxParser.setProperty(&#8220;http:\/\/java.sun.com\/xml\/jaxp\/properties\/schemaSource&#8221;, schemaPath); DefaultHandler handler = new DefaultHandler(); saxParser.parse(xmlPath, handler); } catch(SAXException exc) { exc.printStackTrace(); } } [\/java] 2\u3002 \u4f7f\u7528DOM\u89e3\u6790\uff1a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"_links":{"self":[{"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/posts\/78"}],"collection":[{"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":0,"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/posts\/78\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/media?parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/categories?post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.prglab.com\/blog\/wp-json\/wp\/v2\/tags?post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}