上一篇文章"XML Schema检验XML文档结构"中,简单介绍了XML Schema及其写法,这篇主要针对java开发者,在程序中检验XML的有效性。
由于程序中经常会对xml的validation进行检验,通过DOM解析再一项一项check的方式,陈旧而且写起来繁杂。本文介绍一种快速检验xml的方法,借助javax.xml.validation包下的Validator, Schema, SchemaFactory等类,通过传入XML Schema Definition(XSD)文件进行验证。
代码如下:
public static void main(String[] args) throws IOException, SAXException {
String xmlFile = "test.xml"
String xsdFile = "test.xsd"
// 1. Lookup a factory for the W3C XML Schema language
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
// 2. Compile the schema.
File schemaLocation = new File(xsdFile);
Schema schema = factory.newSchema(schemaLocation);
// 3. Get a validator from the schema.
Validator validator = schema.newValidator();
// 4. Parse the document you want to check.
Source source = new StreamSource(xmlFile);
// 5. Check the document
try {
validator.validate(source);
System.out.println(xmlFile + " is valid.");
} catch (SAXException ex) {
System.out.println(xmlFile + " is not valid because ");
System.out.println(ex.getMessage());
}
}
Validator的validate方法用于检验其正确性,如果不符合XSD描述,则会SAXException,并附带出错信息。
Hope it can relax your eyes : )
- 大小: 49.4 KB
分享到:
相关推荐
总结起来,XML Commons External 1.3.04是一个强大的XML处理工具集,提供了高效的解析器、全面的DOM和SAX实现,以及XML Schema支持,是Java开发者处理XML文档时不可或缺的库。通过解压"xml-commons-external-1.3.04-...
- **XML模式(XSD)**:如果你想确保XML文件遵循特定的结构,可以使用XSD(XML Schema Definition)文件,并用`ReadXmlSchema()`方法加载它。 - **错误处理**:在读取XML时,应考虑捕获可能出现的异常,如文件不...
ASP.NET可以使用XmlSchema和XmlSchemaSet类来验证XML文档是否符合指定的XML Schema。 总之,ASP.NET的XML编程能力强大而全面,涵盖了从基础的XML处理到复杂的Web服务和数据绑定等多个方面,为开发人员提供了丰富的...
XML也常用于WCF(Windows Communication Foundation)服务描述,定义服务接口、操作、消息格式等,这些信息在服务合同(Service Contract)中用XML描述。 掌握XML的解析和序列化是深入学习的关键。XML解析器如...
XSL-FO(XSL格式化对象)是XSL中用来定义XML文档格式化和输出格式的部分。 XHTML(可扩展超文本标记语言)是将HTML作为XML应用的一个结果,它是一种严格遵循XML规则的HTML版本。 HTML5是最新版本的HTML,它支持...
2. **XMLType对象**:XMLType是Oracle中用于存储XML数据的核心对象类型。它可以存储在列中,也可以作为表的主键或外键。XMLType支持XPath查询和XQuery表达式,使得在SQL查询中处理XML数据变得直接和高效。 3. **XML...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=...
在数据的结构和模式定义方面,XML Schema(XSD)被用来定义XML文档的结构和数据类型,从而保证数据的一致性和准确性。例如,可以创建一个XSD文件来规定订单数据的格式,包括所有必需的字段和它们的类型。 XML与CSS...
),XML中用来设定显示风格样式的文件类型有: 1.XSL XSL全称是Extensible Stylesheet Language(可扩展样式语言), 是将来设计XML文档显示样式的主要文件类型。它本身也是基于XML语言的。使用XSL,你可以灵活的...
- DTD(Document Type Definition)与XSD(XML Schema Definition):两者用于定义XML文档的结构和约束,XSD是更现代且功能更强大的选择。 2. **C#中的XML解析** - `XmlReader`:轻量级读取器,逐节点解析XML,不...
- 在各种编程语言中都有XML处理库,如Java的JAXB、DOM4J,Python的lxml,JavaScript的DOMParser等。 - 工具如XMLSpy、Notepad++的XML插件,用于编辑、格式化和验证XML文档。 通过深入理解和实践这些操作方式,...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans ...
本主题将深入探讨CXF如何处理像Map这样的Java集合类,以及其他不能直接通过标准XML Schema(如XSD)表示的复杂数据结构。 **一、CXF与复杂类型** 1. **XML与复杂类型映射**:CXF使用JAXB(Java Architecture for ...
12. XML Schema 中队与,和的描述,哪个正确? 答案:<xs:choice> 元素用于定义可选的元素或组,<xs:sequence> 元素用于定义顺序元素的序列。 13. 下面哪个框架可以实现 Webservice? 答案:Axis、XFire 和 Apache...
4. **jaxb-xjc-2.0.jar**:JAXB的XJC工具,用于从XML Schema生成Java类,帮助构建符合WSDL的服务。 5. **jaxen-1.1-beta-9.jar**:Jaxen是一个XPath引擎,允许在多种XML API中执行XPath表达式,可能会在解析WSDL或...
此外,由于expat库本身并不支持XML的验证,如果需要验证XML文档是否符合特定的XML Schema,开发者可能需要结合其他工具或库。 总结起来,expat-2.2.5.tar.bz2是一个在Linux环境中用C语言编写的XML解析库,通过事件...
在Java面试中,面试官通常会关注候选人的基础知识、技术深度、实战经验以及问题解决能力。以下是一些常见的Java面试知识点: 1. 购物车实现:购物车功能通常涉及数据结构(如ArrayList或LinkedList)和状态管理(如...
在实际应用中,DTD 通常与 XML Schema 和 Relax NG 等其他更现代的结构化语言一起被考虑,以提供更强大和灵活的文档定义能力。学习和实践 DTD,能够帮助你更好地理解和处理 XML 文档的结构和验证。