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,这有可能导致出现乱码。
分享到:
相关推荐
此外,JDOM还支持XML Schema和DTD验证,以及XPath表达式来定位XML文档中的特定节点。 然而,JDOM并非没有缺点。它的内存消耗相对较高,因为它会将整个XML文档加载到内存中,这在处理大型XML文件时可能会成为一个...
另外,JDOM还可以与外部XML Schema或DTD(Document Type Definition)结合,进行XML文档的验证。 7. **扩展性**: 除了基本的XML处理功能,JDOM还允许开发者通过扩展API来实现自定义的行为,如自定义命名空间处理、...
JDOM还支持XML Schema和DTD(Document Type Definition)验证,确保XML文档遵循预定义的规则。此外,JDOM提供了丰富的API来处理命名空间,这对于处理包含复杂命名空间的XML文档至关重要。 在插件开发中,JDOM可以...
在实际开发中,JDOM和Dom4j经常被用来解析XML配置文件、生成XML报告或者与XML格式的数据交换。例如,在Web服务、数据存储、日志记录等领域,XML作为一种标准的数据交换格式,经常需要通过这些库进行处理。理解并熟练...
2. 生成XML:Java的javax.xml.transform和javax.xml.parsers包提供了生成XML的功能。Transformer类可以将源树转换为目标格式,如XML字符串或文件。DocumentBuilder类则用于创建和修改DOM树。 3. 验证XML:通过使用...
DTD包含元素定义、元素间关系、属性规定以及实体和符号规则,它为XML文档提供了验证机制。 接下来,我们将探讨如何使用DOM(Document Object Model)解析XML数据。DOM是一种基于树形结构的API,它可以将XML文档解析...
XML(Extensible Markup Language)是一种标记语言,它的结构清晰、可读性强,易于机器解析和生成。本篇文章将深入探讨如何在Java中利用提供的库来操作XML文件,并结合压缩包中的资源进行说明。 首先,压缩包中包含...
通过定义Java类和XML Schema,JAXB可以自动生成XML序列化和反序列化的代码,简化了XML处理。使用`javax.xml.bind.JAXBContext`和`Unmarshaller`可以将XML数据转换为Java对象,反之,使用`Marshaller`可以将Java对象...
生成XML则可通过DOM、XMLWriter等方式实现。 4. 验证:XML文档可以通过DTD或XML Schema进行验证,确保其结构正确。DTD是早期的验证方式,而XML Schema提供了更强大的数据类型和约束。 5. XPath:XPath是一种在XML...
通过利用Java的JDBC API来连接数据库,使用DOM/SAX/JDOM等工具来解析和生成XML文件,再结合GUI工具的设计,可以开发出一个功能强大且易于使用的数据抽取工具。这种工具的应用范围广泛,对于需要频繁处理大量异构数据...
此外,可以使用XML Schema(XSD)或DTD(Document Type Definition)对XML文件进行验证,确保其符合规范。 10. **性能优化** 对于大量XML数据,可以考虑使用StAX(Streaming API for XML),它是一种低级别的解析...
- 可以使用`javax.xml.validation`包中的工具对XML进行验证,确保其符合特定的XML Schema(XSD)或DTD(文档类型定义)。 在实际开发中,选择合适的XML处理库和方法取决于具体需求,如文件大小、处理速度、内存...
Java作为一种多用途的编程语言,提供了丰富的API来处理XML,使得开发者能够方便地进行XML的解析、生成、验证等操作。本文将深入探讨Java中的XML编程,主要涉及以下几个核心知识点: 1. **DOM解析**:DOM(Document ...
8. **DOM4J和JDOM**:在Java开发中,DOM4J和JDOM是常用的XML处理库,提供了方便的API进行XML解析、操作和生成。 9. **XML与JSON**:虽然XML功能强大,但JSON因其简洁性和易用性在现代Web应用中更为流行。两者各有...
- 使用Java编写程序来生成XML文档,包括如何正确地编码XML元素、属性和文本。 - 处理命名空间,确保生成的XML文档符合规范。 - 编写简单的XML-RPC客户端和SOAP客户端示例。 - **解析XML**: - 介绍了不同的XML...
1. **XML基础**:XML的基础知识包括语法规范、命名空间、文档类型定义(DTD)、XML Schema以及XML实例文档的编写。理解这些基础知识是有效使用XML的前提。 2. **解析与生成**:学习如何使用DOM(Document Object ...
- **DOMStreamWriter**:StAX提供了一种写XML的方式,允许动态生成XML流。`javax.xml.stream.XMLStreamWriter`用于创建XML内容。 4. **XMLCollectionsample.zip和XMLCollectionclass.zip** 这两个文件可能包含了...
验证是指检查XML文档是否符合其DTD或XML Schema定义的结构和语义规则。这一步骤对于确保XML数据的正确性和一致性至关重要。 **2.3 对XML数据的各种操作** 这包括对XML文档进行查询、修改、插入和删除等操作。这些...
6. XML Schema(XSD)和DTD(Document Type Definition):XML的验证机制,用于定义XML文档的结构和约束。如何使用`javax.xml.validation`包进行XML文档的验证。 7. XPath:一种在XML文档中查找信息的语言,可能...