java 實現的XML schema 驗證(轉)
java 實現的XML schema 驗證(轉)[@more@]最近對Schema 驗證研究了一下, 程式碼如下:
所需JAR包需要自己下載(版本一定要正確)
public class SchemaValidation {
public static void main(String[] args) {
validate();
}
public static void validate() {
try {
SchemaValidation demo = new SchemaValidation();
// Give the xml and schema name
InputStream xmlString = demo.getClass().getResourceAsStream("GBAInit.xml");
InputStream schemaStr = demo.getClass().getResourceAsStream("GBAInitSchema.xsd");
SAXReader reader = createSAXReader(schemaStr);
System.out.println("XSD parse successfully !");
Document document = reader.read(xmlString);
System.out.println("Successfully validation .. . ");
} catch (DocumentException e) {
System.out.println("Exception occurred: " + e);
Throwable nestedException = e.getNestedException();
if (nestedException != null) {
System.out.println("NestedException: " + nestedException);
nestedException.printStackTrace();
} else {
e.printStackTrace();
}
} catch (Throwable t) {
System.out.println("Exception occurred: " + t);
t.printStackTrace();
}
}
/** Registers the Verifier with the SAXReader */
protected SAXReader createSAXReader(InputStream schemaURI) throws Exception {
System.out.println("Loaded schema document: " + schemaURI);
// use autodetection of schemas
VerifierFactory factory = new com.sun.msv.verifier.jarv.TheFactoryImpl();
Schema schema = factory.compileSchema(schemaURI);
Verifier verifier = schema.newVerifier();
verifier.setErrorHandler(new ErrorHandler() {
public void error(SAXParseException e) {
System.out.println("ERROR: " + e);
}
public void fatalError(SAXParseException e) {
System.out.println("FATAL: " + e);
}
public void warning(SAXParseException e) {
System.out.println("WARNING: " + e);
}
});
// now install the verifying filter
VerifierFilter filter = verifier.getVerifierFilter();
SAXReader reader = new SAXReader();
reader.setXMLFilter(filter);
return reader;
}
}
所需JAR包需要自己下載(版本一定要正確)
public class SchemaValidation {
public static void main(String[] args) {
validate();
}
public static void validate() {
try {
SchemaValidation demo = new SchemaValidation();
// Give the xml and schema name
InputStream xmlString = demo.getClass().getResourceAsStream("GBAInit.xml");
InputStream schemaStr = demo.getClass().getResourceAsStream("GBAInitSchema.xsd");
SAXReader reader = createSAXReader(schemaStr);
System.out.println("XSD parse successfully !");
Document document = reader.read(xmlString);
System.out.println("Successfully validation .. . ");
} catch (DocumentException e) {
System.out.println("Exception occurred: " + e);
Throwable nestedException = e.getNestedException();
if (nestedException != null) {
System.out.println("NestedException: " + nestedException);
nestedException.printStackTrace();
} else {
e.printStackTrace();
}
} catch (Throwable t) {
System.out.println("Exception occurred: " + t);
t.printStackTrace();
}
}
/** Registers the Verifier with the SAXReader */
protected SAXReader createSAXReader(InputStream schemaURI) throws Exception {
System.out.println("Loaded schema document: " + schemaURI);
// use autodetection of schemas
VerifierFactory factory = new com.sun.msv.verifier.jarv.TheFactoryImpl();
Schema schema = factory.compileSchema(schemaURI);
Verifier verifier = schema.newVerifier();
verifier.setErrorHandler(new ErrorHandler() {
public void error(SAXParseException e) {
System.out.println("ERROR: " + e);
}
public void fatalError(SAXParseException e) {
System.out.println("FATAL: " + e);
}
public void warning(SAXParseException e) {
System.out.println("WARNING: " + e);
}
});
// now install the verifying filter
VerifierFilter filter = verifier.getVerifierFilter();
SAXReader reader = new SAXReader();
reader.setXMLFilter(filter);
return reader;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-963580/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- XML 驗證概述XML
- java圖形驗證碼實現Java
- Python實現簡單驗證碼的轉文字Python
- XML Schema定義XML
- Java實現郵箱驗證碼功能Java
- 【總結】Java實現簡訊驗證碼Java
- 使用GraphQL對資料模型和訊息格式實現類似XML的DTD驗證模型XML
- easy-captcha實現驗證碼驗證APT
- Python Schema一種優雅的資料驗證方式Python
- Json Schema簡介和Json Schema的.net實現庫 LateApexEarlySpeed.Json.SchemaJSON
- java實現手機簡訊驗證全過程Java
- 元件使用總結:使用 JAXB 實現 XML檔案和java物件互轉元件XMLJava物件
- Django實現驗證碼Django
- Java 將HTML轉為XMLJavaHTMLXML
- Spring 中的 XML schema 擴充套件機制SpringXML套件
- java視窗登入介面實現隨機驗證碼Java隨機
- web動態驗證碼的實現Web
- 簡訊驗證實現方式
- java 語音用xml檔案實現圖形介面 xml檔案JavaXML
- lumen驗證類 實現控制器場景驗證
- java 物件與xml相互轉換Java物件XML
- 使用Java中的Luhn演算法實現信用卡驗證 - Java2BlogJava演算法
- node實現基於token的身份驗證
- 實現elementUI表單的全域性驗證UI
- Spring系列-XML schema擴充套件機制SpringXML套件
- 如何給XML Schema增加Annotations標記BHXML
- Laravel 驗證類 實現 路由場景驗證 和 控制器場景驗證Laravel路由
- XML Schema(XSD)詳解:定義 XML 文件結構合法性的完整指南XML
- Java隨機生成圖片與HTML表單中的驗證碼實現Java隨機HTML
- 如何實現 Java SpringBoot 自動驗證入引數據的有效性JavaSpring Boot
- Java學習--xml文字轉換成Java物件JavaXML物件
- 純CSS實現表單驗證CSS
- Rust中實現JWT身份驗證RustJWT
- KgCaptcha驗證碼實現筆記GCAPT筆記
- 使用 Spring Validator 介面實現驗證Spring
- java 雙向證書請求 雙向驗證機制 轉載Java
- 聊聊 Spring 的 XML Schema 擴充套件機制的使用方式SpringXML套件
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- Java 實現 markdown轉HtmlJavaHTML