`
shen211
  • 浏览: 47421 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jdom生成xml 、DTD验证《转》

    博客分类:
  • java
阅读更多
1、创建XML文档:
import java.io.*; 
 import org.jdom.*; 
 import org.jdom.input.*; 
 import org.jdom.output.*; 

 public class CreateXML 
 { 
  public void Create() 
  { 
   try 
   { 
    Document doc = new Document();    
    ProcessingInstruction pi=new ProcessingInstruction("xml-stylesheet","type="text/xsl" href="test.xsl""); 
    doc.addContent(pi); 
     
    Namespace ns = Namespace.getNamespace("http://www.bromon.org" ); 
    Namespace ns2 = Namespace.getNamespace("other", "http://www.w3c.org" ); 

    Element root = new Element("根元素", ns); 
    root.addNamespaceDeclaration(ns2); 
    doc.setRootElement(root); 
    Element el1 = new Element("元素一"); 
    el1.setAttribute("属性", "属性一"); 
     
    Text text1=new Text("元素值"); 
             Element em = new Element("元素二").addContent("第二个元素"); 

    el1.addContent(text1); 
             el1.addContent(em); 
              
             Element el2 = new Element("元素三").addContent("第三个元素"); 

             root.addContent(el1); 
             root.addContent(el2); 
              
             //缩进四个空格,自动换行,gb2312编码 ,此构造方法在jdom1.0中不再使用。
             XMLOutputter outputter = new XMLOutputter("  ", true,"GB2312"); 
             outputter.output(doc, new FileWriter("test.xml")); 
         }catch(Exception e) 
         { 
          System.out.println(e); 
         } 
     } 
      
     public static void main(String args[]) 
     { 
      new CreateXML().Create(); 
     } 
      
 } 

2、DTD验证的:
import java.io.*; 
 import org.jdom.*; 
 import org.jdom.input.*; 
 import org.jdom.output.*; 

 public class XMLWithDTD 
 { 
  public void validate() 
  { 
   try 
   { 
    SAXBuilder builder = new SAXBuilder(true); 
    builder.setFeature("http://xml.org/sax/features/validation";,true);  
    Document doc = builder.build(new FileReader("author.xml")); 
     
    System.out.println("搞掂"); 
    XMLOutputter outputter = new XMLOutputter(); 
    outputter.output(doc, System.out); 
   }catch(Exception e) 
   { 
    System.out.println(e); 
   } 
    
  } 
  public static void main(String args[]) 
  { 
   new XMLWithDTD().validate(); 
  } 
   
 } 

    需要说明的是,这个程序没有指明使用哪个DTD文件。DTD文件的位置是在XML中指定的,而且DTD不支持命名空间,一个XML只能引用一个DTD,所以程序直接读取XML中指定的DTD,程序本身不用指定。不过这样一来,好象就只能使用外部式的DTD引用方式了?高人指点。

3、XML Schema验证的:
import java.io.*; 
 import org.jdom.*; 
 import org.jdom.input.*; 
 import org.jdom.output.*; 

 public class XMLWithSchema 
 { 
  String xml="test.xml"; 
  String schema="test-schema.xml"; 
  public void validate() 
  { 
   try 
   { 
    SAXBuilder builder = new SAXBuilder(true); 
    //指定约束方式为XML schema 
    builder.setFeature("http://apache.org/xml/features/validation/schema";,  true); 
    //导入schema文件 
    builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation";,schema);  
    Document doc = builder.build(new FileReader(xml)); 
     
    System.out.println("搞掂"); 
    XMLOutputter outputter = new XMLOutputter(); 
    outputter.output(doc, System.out); 
   }catch(Exception e) 
   { 
    System.out.println("验证失败:"+e); 
   } 
    
  } 
   
 } 

上面的程序就指出了要引入的XML Schema文件的位置。

系统默认输出是UTF-8,这有可能导致出现乱码。
分享到:
评论
2 楼 shen211 2010-08-25  
这个是很久以前的了,你参考参考。该改的做相应改动即可。
好久没来了,以后还是每天来看看,太对不住有评论的朋友了
1 楼 xmllong 2010-07-23  
楼主呀,你这个JDOM用的是什么版本呀,我加了JAR包,怎么老不对呢

相关推荐

    用jdom简化xml 编程 关于xml

    此外,JDOM还支持XML Schema和DTD验证,以及XPath表达式来定位XML文档中的特定节点。 然而,JDOM并非没有缺点。它的内存消耗相对较高,因为它会将整个XML文档加载到内存中,这在处理大型XML文件时可能会成为一个...

    jdom-1.1.3.zip

    另外,JDOM还可以与外部XML Schema或DTD(Document Type Definition)结合,进行XML文档的验证。 7. **扩展性**: 除了基本的XML处理功能,JDOM还允许开发者通过扩展API来实现自定义的行为,如自定义命名空间处理、...

    jdom开发过程详细资料(整合版)

    JDOM还支持XML Schema和DTD(Document Type Definition)验证,确保XML文档遵循预定义的规则。此外,JDOM提供了丰富的API来处理命名空间,这对于处理包含复杂命名空间的XML文档至关重要。 在插件开发中,JDOM可以...

    JDOM_Dom4j.rarJDOM_Dom4j.rar

    在实际开发中,JDOM和Dom4j经常被用来解析XML配置文件、生成XML报告或者与XML格式的数据交换。例如,在Web服务、数据存储、日志记录等领域,XML作为一种标准的数据交换格式,经常需要通过这些库进行处理。理解并熟练...

    xml_java指南

    2. 生成XML:Java的javax.xml.transform和javax.xml.parsers包提供了生成XML的功能。Transformer类可以将源树转换为目标格式,如XML字符串或文件。DocumentBuilder类则用于创建和修改DOM树。 3. 验证XML:通过使用...

    JSP实现对XML读写

    DTD包含元素定义、元素间关系、属性规定以及实体和符号规则,它为XML文档提供了验证机制。 接下来,我们将探讨如何使用DOM(Document Object Model)解析XML数据。DOM是一种基于树形结构的API,它可以将XML文档解析...

    java 操作xml文件(包含xml文件和对应jar包)

    XML(Extensible Markup Language)是一种标记语言,它的结构清晰、可读性强,易于机器解析和生成。本篇文章将深入探讨如何在Java中利用提供的库来操作XML文件,并结合压缩包中的资源进行说明。 首先,压缩包中包含...

    利用Java技术进行XML编程3

    通过定义Java类和XML Schema,JAXB可以自动生成XML序列化和反序列化的代码,简化了XML处理。使用`javax.xml.bind.JAXBContext`和`Unmarshaller`可以将XML数据转换为Java对象,反之,使用`Marshaller`可以将Java对象...

    XML编程宝典XML编程宝典

    生成XML则可通过DOM、XMLWriter等方式实现。 4. 验证:XML文档可以通过DTD或XML Schema进行验证,确保其结构正确。DTD是早期的验证方式,而XML Schema提供了更强大的数据类型和约束。 5. XPath:XPath是一种在XML...

    Java与XML实现数据抽取

    通过利用Java的JDBC API来连接数据库,使用DOM/SAX/JDOM等工具来解析和生成XML文件,再结合GUI工具的设计,可以开发出一个功能强大且易于使用的数据抽取工具。这种工具的应用范围广泛,对于需要频繁处理大量异构数据...

    读取和修改xml文件

    此外,可以使用XML Schema(XSD)或DTD(Document Type Definition)对XML文件进行验证,确保其符合规范。 10. **性能优化** 对于大量XML数据,可以考虑使用StAX(Streaming API for XML),它是一种低级别的解析...

    java写入和存储XML

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

    简析JAVA的XML编程

    Java作为一种多用途的编程语言,提供了丰富的API来处理XML,使得开发者能够方便地进行XML的解析、生成、验证等操作。本文将深入探讨Java中的XML编程,主要涉及以下几个核心知识点: 1. **DOM解析**:DOM(Document ...

    XML编程从入门到精通(PDF)

    8. **DOM4J和JDOM**:在Java开发中,DOM4J和JDOM是常用的XML处理库,提供了方便的API进行XML解析、操作和生成。 9. **XML与JSON**:虽然XML功能强大,但JSON因其简洁性和易用性在现代Web应用中更为流行。两者各有...

    Processing XML with Java.pdf

    - 使用Java编写程序来生成XML文档,包括如何正确地编码XML元素、属性和文本。 - 处理命名空间,确保生成的XML文档符合规范。 - 编写简单的XML-RPC客户端和SOAP客户端示例。 - **解析XML**: - 介绍了不同的XML...

    Effective.XML.50.Specific.Ways.To.Improve.Your.XML

    1. **XML基础**:XML的基础知识包括语法规范、命名空间、文档类型定义(DTD)、XML Schema以及XML实例文档的编写。理解这些基础知识是有效使用XML的前提。 2. **解析与生成**:学习如何使用DOM(Document Object ...

    对XML文件的读写

    - **DOMStreamWriter**:StAX提供了一种写XML的方式,允许动态生成XML流。`javax.xml.stream.XMLStreamWriter`用于创建XML内容。 4. **XMLCollectionsample.zip和XMLCollectionclass.zip** 这两个文件可能包含了...

    基于XML的数据处理基础支撑技术及应用

    验证是指检查XML文档是否符合其DTD或XML Schema定义的结构和语义规则。这一步骤对于确保XML数据的正确性和一致性至关重要。 **2.3 对XML数据的各种操作** 这包括对XML文档进行查询、修改、插入和删除等操作。这些...

    XML工具类

    6. XML Schema(XSD)和DTD(Document Type Definition):XML的验证机制,用于定义XML文档的结构和约束。如何使用`javax.xml.validation`包进行XML文档的验证。 7. XPath:一种在XML文档中查找信息的语言,可能...

Global site tag (gtag.js) - Google Analytics