通过xerces来验证xml是否匹配xsd的java示例
2013-03-04 16:58
323 查看
Xerces是一个开放源代码的XML语法分析器。从JDK1.5以后,Xerces就成了JDK的XML默认实现。
下面示例简单展示了如何用xerces来验证xml是否匹配xsd:
stock.xsd
stock.xml
参考资料:
http://www.cnblogs.com/wufengtinghai/archive/2011/08/14/2137691.html
下面示例简单展示了如何用xerces来验证xml是否匹配xsd:
import java.io.File; import java.io.IOException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.xml.sax.SAXException; public class ValidateXML { public static void main(String[] args) throws SAXException, IOException{ ValidateXML vXML = new ValidateXML(); vXML.validatexml(".\\stock.xsd", ".\\stock.xml"); } public void validatexml(String xsdpath, String xmlpath) throws SAXException, IOException { // 建立schema工厂 SchemaFactory schemaFactory = SchemaFactory .newInstance("http://www.w3.org/2001/XMLSchema"); // 建立验证文档文件对象,利用此文件对象所封装的文件进行schema验证 File schemaFile = new File(xsdpath); // 利用schema工厂,接收验证文档文件对象生成Schema对象 Schema schema = schemaFactory.newSchema(schemaFile); // 通过Schema产生针对于此Schema的验证器,利用schenaFile进行验证 Validator validator = schema.newValidator(); // 得到验证的数据源 Source source = new StreamSource(xmlpath); // 开始验证,成功输出success!!!,失败输出fail try { validator.validate(source); System.out.println( "The xml is valid."); } catch (SAXException ex) { System.out.println(" The xml is not valid because "); ex.printStackTrace(); } } }
stock.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:f="http://example.test.com/stock" targetNamespace="http://example.test.com/stock"> <xs:element name="StockTrade" type="f:StockTradeType"/> <xs:complexType name="StockTradeType"> <xs:sequence> <xs:element name="ts" type="xs:dateTime"/> <xs:element name="symbol" type="xs:string"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:schema>
stock.xml
<f:StockTrade xmlns:f="http://example.test.com/stock"> <f:ts>2012-01-01T16:50:00Z</f:ts> <f:symbol>1</f:symbol> <f:price>555</f:price> </f:StockTrade>
参考资料:
http://www.cnblogs.com/wufengtinghai/archive/2011/08/14/2137691.html
相关文章推荐
- 通过xsd验证xml合法性的例子。有验证程序,xml和xsd文件
- [SoapUI]怎样运用Schema通过*.xsd文件来验证response对应的xml文件
- Java XSD验证XML的方法总结
- Xsd文件验证xml的java实现
- xml通过schema方式的文档定义xsd,及使用示例
- [代码]使用XSD验证XML示例1(LINQ to XML)
- 验证xml是否符合指定xsd
- javaweb基础----Hibernate+struts2验证用户名和密码是否匹配
- js 通过正则匹配 验证url格式是否正确
- [代码]使用XSD验证XML示例2(LINQ to XML)
- C#使用xsd文件验证XML 格式是否正确
- xsd文件验证xml的java实现
- [代码]使用XSD验证XML示例(LINQ to XML)(转)
- java中使用xsd验证xml
- Java 语言的 XML 验证 API-检查文档是否符合模式
- [转]Java 语言的 XML 验证 API---检查文档是否符合模式
- 用jaxb通过XSD生成Java类,java对象转换成xml文件
- C# 使用xsd文件验证XML 格式是否正确
- 关于JAVA中 XSD 验证 XML 错误信息设置为中文的方法
- Java与XML的故事一:通过XSD生成Java类