`
wenhai_zhang
  • 浏览: 186067 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用SAXParser验证XML文件格式---XSD

    博客分类:
  • xml
阅读更多
package com.xsd;

import java.io.IOException;

import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;

class XMLReaderValidator {
public static void main(String[] args) {
String parserClass = "org.apache.xerces.parsers.SAXParser";
String validationFeature = "http://xml.org/sax/features/validation";
String schemaFeature = "http://apache.org/xml/features/validation/schema";
String fileName = "conf/xsd/dictionary_invalid_xsd.xml";
try {
String x = fileName;
XMLReader r = XMLReaderFactory.createXMLReader(parserClass);
r.setFeature(validationFeature, true);
r.setFeature(schemaFeature, true);
r.setErrorHandler(new MyErrorHandler());
r.parse(x);
} catch (SAXException e) {
System.out.println(e.toString());
} catch (IOException e) {
System.out.println(e.toString());
}
}

private static class MyErrorHandler extends DefaultHandler {
public void warning(SAXParseException e) throws SAXException {
System.out.println("Warning: ");
printInfo(e);
}

public void error(SAXParseException e) throws SAXException {
System.out.println("Error: ");
printInfo(e);
}

public void fatalError(SAXParseException e) throws SAXException {
System.out.println("Fattal error: ");
printInfo(e);
}

private void printInfo(SAXParseException e) {
System.out.println("   Public ID: " + e.getPublicId());
System.out.println("   System ID: " + e.getSystemId());
System.out.println("   Line number: " + e.getLineNumber());
System.out.println("   Column number: " + e.getColumnNumber());
System.out.println("   Message: " + e.getMessage());
}
}
}

xml文件和xsd文件稍后上传
分享到:
评论

相关推荐

    使用SAXParser(SAXParserFactory.newInstance())验证XML文件格式---XSD

    本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的XSD规范。 首先,`SAXParserFactory.newInstance()` 是Java API中用于创建SAXParser实例的方法,它是`javax.xml....

    java写入和存储XML

    - 可以使用`javax.xml.validation`包中的工具对XML进行验证,确保其符合特定的XML Schema(XSD)或DTD(文档类型定义)。 在实际开发中,选择合适的XML处理库和方法取决于具体需求,如文件大小、处理速度、内存...

    xml dom,sax解析,schema验证

    在进行XML Schema验证时,首先需要创建一个SchemaGrammar对象来加载XSD文件,然后使用SchemaValidator设置这个模式,并将XML文档解析器关联到验证器。解析XML文件时,验证器会根据XSD规则检查每个元素和属性,若有...

    java xml realworld problem

    - 在Java中,可以使用XMLSchemaFactory和XMLSchema类来验证XML文档是否符合定义的Schema。 4. XPath和XSLT: - XPath是查询XML文档的路径语言,用于选取节点。Java中,使用javax.xml.xpath包下的XPathFactory和...

    Java通过XML Schema校验XML

    在本例中,作者选择使用DOM4j库来进行XML的解析与校验,并且结合了javax.xml.parsers包中的SAXParser来实现XML与XSD之间的校验。这种方法相对直观且易于理解。 #### 示例代码详解 首先,我们来看一下示例中给出的...

    XMLParser:使用 SAX 验证处理来自 XML 文件的客户和订单统计信息

    为了验证 XML 文件,你需要一个 XML schema (XSD) 文件,该文件定义了有效的 XML 结构。SAX 解析器可以在解析过程中应用这个 schema,确保输入数据符合预期格式。通过 `SchemaFactory` 和 `Validator` 类,可以加载 ...

    xml-apis.zip_JAVA XML_java xml_xml_zip

    6. **XML Schema(XSD)支持**:用于验证XML文档是否符合预定义的模式。Java API提供了`javax.xml.validation`包来支持XML Schema。 7. **Namespace支持**:XML中常使用命名空间来避免元素名的冲突,`javax.xml....

    XML读取解析,(初学者)

    - 创建`SAXParserFactory`,生成`SAXParser`,并调用`parse()`方法,传入XML文件和自定义的处理器。 3. 使用StAX解析: - 引入`javax.xml.stream`包下的`XMLInputFactory`,`XMLStreamReader`和`XMLEventReader`...

    xml四种解析方法及源码

    在处理XML时,还应关注XML的DTD(Document Type Definition)或XSD(XML Schema Definition),它们用于定义XML文档的结构和数据类型。例如,示例中的`db.dtd`文件就为`dbconfig`元素定义了子元素的结构。在解析XML...

    java读取XML文件

    为了确保XML文件符合特定的架构(DTD或XSD),我们可以使用`javax.xml.validation`包中的`SchemaFactory`和`Validator`类。这样可以防止因错误的XML格式导致的问题。 最后,一些开发工具,如Eclipse、IntelliJ IDEA...

    javax.xml-1.3.4

    `Validator`接口则提供了验证XML文档的方法,如`validate(Source xmlSource, Result errorOutput)`,通过该方法,我们可以检测XML文档的语法是否正确。 此外,`javax.xml.namespace`子包提供了处理XML命名空间的...

    Android高级应用源码-Android解析服务端XML.rar

    - XML Schema(XSD)和DTD(Document Type Definition):用于验证XML文档是否符合预定义的结构规则。 - JSON解析:虽然本主题是关于XML,但JSON也是常见的数据交换格式,了解如何在Android中解析JSON(如使用Gson或...

    java解析XML详解.pdf

    XSD可以用来验证XML文档的格式是否符合要求。XSD不仅可以定义元素和属性,还可以定义数据类型和它们之间的关系。 在Java中,可以使用JAXP(Java API for XML Processing)来实现对XML Schema的处理。 ### XSLT...

    MSXML 4.0 sp2 parser sdk

    - 验证XML文档:使用Schema对象和XML Schema Definition (XSD) 文件验证XML文档是否符合预定义的模式。 - XSLT转换:通过XSLTransform接口实现XML到XML或HTML的转换。 - XPath查询:通过XPathEvaluator或...

    XML解析DEMOXML解析DEMO

    此外,XML还涉及到命名空间(Namespaces)、DTD(Document Type Definition)或XSD(XML Schema Definition)验证、XPath(XML Path Language)查询、XSLT(XML Stylesheet Language Transformations)转换等高级...

    用PHP操作XML(真逗,标题不够详细)

    PHP的DOM扩展支持`DOMDocument::schemaValidate`方法来验证XML文档是否符合指定的XSD文件。 7. **XML编码与解码** PHP的`htmlspecialchars`和`html_entity_decode`函数可以用于XML中的字符编码和解码,以防止XML...

    Xerces-J-bin.1.3.1.zip

    在实际应用中,开发者可能会遇到各种XML处理需求,例如验证XML文档是否符合特定的XML Schema(XSD),或者处理命名空间等。Xerces-J提供的API覆盖了这些功能,使得开发者能够轻松地实现复杂的XML处理任务。例如,...

    xerces.jar xml解析 生成必备工具包.zip

    Xerces还支持XML Schema(XSD)和DTD(Document Type Definition)来验证XML文档的结构是否符合规范。通过设置解析器的验证属性,可以开启验证功能,确保XML数据的正确性。 总之,"xerces.jar xml解析 生成必备工具...

    Xerces-J-src.1.4.3.zip

    此外,Xerces-J还支持XML Schema(XSD)和DTD(Document Type Definition),用于验证XML文档的结构是否符合预定义的规则。这在确保数据的准确性和一致性方面起着重要作用。例如,`org.apache.xerces.impl.dv.xs`包...

    SAX

    - XML格式验证:验证XML文档是否符合特定的DTD或XSD规范。 - XML数据转换:将XML数据转换为其他格式,如JSON或数据库记录。 综上所述,SAX解析器是处理XML文档的一种高效策略,尤其适用于大文件或资源受限的环境...

Global site tag (gtag.js) - Google Analytics