电竞比分网-中国电竞赛事及体育赛事平台

分享

通過xsd校驗(yàn)數(shù)據(jù)正確性

 昵稱10504424 2013-02-19
  1.  public static void validateXMLByXSD() {   
  2.         String xmlFileName = "D:\\test.xml";   
  3.         String xsdFileName = "D:\\test.xsd";   
  4.         try {   
  5.             // 創(chuàng)建默認(rèn)的XML錯誤處理器   
  6.             XMLErrorHandler errorHandler = new XMLErrorHandler();   
  7.             // 獲取基于 SAX 的解析器的實(shí)例   
  8.             SAXParserFactory factory = SAXParserFactory.newInstance();   
  9.             // 解析器在解析時驗(yàn)證 XML 內(nèi)容。   
  10.             factory.setValidating(true);   
  11.             // 指定由此代碼生成的解析器將提供對 XML 名稱空間的支持。   
  12.             factory.setNamespaceAware(true);   
  13.             // 使用當(dāng)前配置的工廠參數(shù)創(chuàng)建 SAXParser 的一個新實(shí)例。   
  14.             SAXParser parser = factory.newSAXParser();   
  15.             // 創(chuàng)建一個讀取工具   
  16.             SAXReader xmlReader = new SAXReader();   
  17.             // 獲取要校驗(yàn)xml文檔實(shí)例   
  18.             Document xmlDocument = (Document) xmlReader.read(new File(   
  19.                     xmlFileName));   
  20.             // 設(shè)置 XMLReader 的基礎(chǔ)實(shí)現(xiàn)中的特定屬性。核心功能和屬性列表可以在   
  21.             // [url]http://sax./?selected=get-set[/url] 中找到。   
  22.             parser.setProperty(   
  23.                     "http://java./xml/jaxp/properties/schemaLanguage",   
  24.                     "http://www./2001/XMLSchema");   
  25.             parser.setProperty(   
  26.                     "http://java./xml/jaxp/properties/schemaSource",   
  27.                     "file:" + xsdFileName);   
  28.             // 創(chuàng)建一個SAXValidator校驗(yàn)工具,并設(shè)置校驗(yàn)工具的屬性   
  29.             SAXValidator validator = new SAXValidator(parser.getXMLReader());   
  30.             // 設(shè)置校驗(yàn)工具的錯誤處理器,當(dāng)發(fā)生錯誤時,可以從處理器對象中得到錯誤信息。   
  31.             validator.setErrorHandler(errorHandler);   
  32.             // 校驗(yàn)   
  33.             validator.validate(xmlDocument);   
  34.             OutputFormat format = OutputFormat.createPrettyPrint();   
  35.             format.setEncoding("utf-8");   
  36.             format.setEncoding("GBK");   
  37.   
  38.             XMLWriter writer = new XMLWriter(format);   
  39.             // 如果錯誤信息不為空,說明校驗(yàn)失敗,打印錯誤信息   
  40.             if (errorHandler.getErrors().hasContent()) {   
  41.                 System.out.println("XML文件通過XSD文件校驗(yàn)失??!");   
  42.                 writer.write(errorHandler.getErrors());   
  43.             } else {   
  44.                 System.out.println("Good! XML文件通過XSD文件校驗(yàn)成功!");   
  45.             }   
  46.         } catch (Exception ex) {   
  47.             System.out.println("XML文件: " + xmlFileName + " 通過XSD文件:"  
  48.                     + xsdFileName + "檢驗(yàn)失敗。\n原因: " + ex.getMessage());   
  49.             ex.printStackTrace();   
  50.         }   
  51.   
  52.     }  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多