根据xml文档编写dtd文件并用java代码测试

原创 2018年04月15日 20:46:32

xml文件:
<应聘信息>
    <应聘者>
        <姓名> 张三 </姓名>
        <硕士> 湖南大学计算机理学硕士 </硕士>
        <奖励> 获得计算机竞赛一等奖一次 </奖励>
        <奖励> 获得三次一等奖学金 </奖励>
        <处分> 被警告处分一次 </处分>
        <性别></性别>
    </应聘者>
    <应聘者>
        <姓名> 李翠花  </姓名>
        <博士> 武汉大学自动化专业工学博士 </博士>
        <奖励> 获得五次一等奖学金 </奖励>
        <性别></性别>
    </应聘者>
    <应聘者>
        <姓名> 王娟娟  </姓名>
        <本科> 吉林大学中文系文学学士 </本科>
        <性别></性别>
    </应聘者>
</应聘信息>
编写的外部dtd:在<xml>标题后 正式xml内容之前 添加外部dtd引用<!DOCTYPE 根元素 SYSTEM "外部dtd文件名.dtd">
具体内容:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE 应聘信息 SYSTEM "second.dtd">

<应聘信息>
    <应聘者>
        <姓名> 张三 </姓名>
        <硕士> 湖南大学计算机理学硕士 </硕士>
        <奖励> 获得计算机竞赛一等奖一次 </奖励>
        <奖励> 获得三次一等奖学金 </奖励>
        <处分> 被警告处分一次 </处分>
        <性别></性别>
    </应聘者>
    <应聘者>
        <姓名> 李翠花  </姓名>
        <博士> 武汉大学自动化专业工学博士 </博士>
        <奖励> 获得五次一等奖学金 </奖励>
        <性别></性别>
    </应聘者>
    <应聘者>
        <姓名> 王娟娟  </姓名>
        <本科> 吉林大学中文系文学学士 </本科>
        <性别></性别>
    </应聘者>
</应聘信息>

外部dtd文档:

<!ELEMENT 应聘信息 (应聘者+)>
<!ELEMENT 应聘者 (姓名|性别|硕士|博士|本科|奖励|处分)*>
        <!ELEMENT 姓名 (#PCDATA)>
        <!ELEMENT 性别 (#PCDATA)>
        <!ELEMENT 硕士 (#PCDATA)>
        <!ELEMENT 博士 (#PCDATA)>
        <!ELEMENT 本科 (#PCDATA)>
        <!ELEMENT 奖励 (#PCDATA)>
        <!ELEMENT 处分 (#PCDATA)>



对于内部dtd文件:在<xml>标题后 正式xml内容之前 添加内部dtd内容

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE 应聘信息 [
        <!ELEMENT 应聘信息 (应聘者+)>
        <!ELEMENT 应聘者 (姓名,硕士?,博士?,本科?,奖励*,处分*,性别)*>
        <!ELEMENT 姓名 (#PCDATA)>
        <!ELEMENT 硕士 (#PCDATA)>
        <!ELEMENT 博士 (#PCDATA)>
        <!ELEMENT 本科 (#PCDATA)>
        <!ELEMENT 奖励 (#PCDATA)>
        <!ELEMENT 处分 (#PCDATA)>
        <!ELEMENT 性别 (#PCDATA)>

]>

<应聘信息>
    <应聘者>
        <姓名> 张三 </姓名>
        <硕士> 湖南大学计算机理学硕士 </硕士>
        <奖励> 获得计算机竞赛一等奖一次 </奖励>
        <奖励> 获得三次一等奖学金 </奖励>
        <处分> 被警告处分一次 </处分>
        <性别></性别>
    </应聘者>
    <应聘者>
        <姓名>李翠花</姓名>
        <博士>武汉大学自动化专业工学博士</博士>
        <奖励>获得五次一等奖学金</奖励>
        <性别></性别>

        <姓名>王娟娟</姓名>
        <本科>吉林大学中文系文学学士</本科>
        <性别></性别>
    </应聘者>
</应聘信息>


对于java语言测试引用dtd内容xml文档是否有效(外部dtd与内部dtd均适用):

public class A
{
    public static void main(String[] args)
    {
        DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
        DocumentBuilder builder=null;

        try
        {
            factory.setValidating(true);
            builder=factory.newDocumentBuilder();
        }
        catch (ParserConfigurationException e)
        {
            e.printStackTrace();
        }

        try
        {
            builder.parse("E:\\IntelliJ IDEA\\jsp\\src\\main\\webapp\\Second\\second.xml");
            System.out.println("xml文档经验证有效!");
        }
        catch (SAXException e)
        {
            e.printStackTrace();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

测试xml有效结果:


若dtd编写不正确则结果会抛出异常。


今天学习编写DTD文件

1.首先编写这种文件介绍一个好用的工具 XMLSpy,可以对编写的规范作出好的检查                                    ]>      ...
  • rnZuoZuo
  • rnZuoZuo
  • 2014-03-09 22:33:33
  • 887

根据dtd编写xml的小例子

根据dtd编写xml的小例子:DTD约束标签 或 类别:约束标签的内容 EMPTY:空标签 PCDATA:普通字符串(没有子标签) ...
  • starjuly
  • starjuly
  • 2016-07-13 23:38:06
  • 383

根据dtd例子写出xml文档

ceshi.xml文件 validate.html验证文件 相关概念说明: 一、XML概述 1、XML是可扩展标记语言。是由W3C指定并...
  • zhengleiqing
  • zhengleiqing
  • 2016-03-27 18:37:17
  • 2487

外部DTD文档

下面是一个用DTD文档的XML实例 文档编写方式:外部DTD文档 下面是要求:                                                         ...
  • hedafighter2011
  • hedafighter2011
  • 2013-09-26 20:00:07
  • 3020

根据学生信息的XML文档编写DTD

程序的实现要求如下:   (1)以“班级”作为根元素。   (2)班级内学生不只一个。   (3)必须用到实体。   (4)“学生”元素的子元素和其属性要符合学生信息的XML文...
  • hope_shine
  • hope_shine
  • 2012-10-30 20:40:59
  • 2790

JAVA解析XML,DTD验证问题

问题提出 :解析ejb-jar.xml,出现在网络连不上的情况下,解析失败的情况。问题分析:我们使用的是DOM进行XML的解析的:            DocumentBuilderFactory...
  • hailanzhijia
  • hailanzhijia
  • 2010-11-12 14:37:00
  • 4234

在XML文档中引入外部DTD文件

XML文档通过使用DOCTYPE声明语句(文档类型定义语句)来指明它所遵循的DTD文件, DOCTYPE声明语句紧跟在XML文档声明语句后面,有两种格式: 1. 2.   例如: 1. ...
  • liyuanli
  • liyuanli
  • 2012-01-08 10:55:33
  • 2179

java解析xml文件读取本地dtd或者忽略dtd

Java程序在解析xml文件时,如果xml文件中指定了dtd,在默认会从指定的url下载dtd文件,但是很多情况下如果网络连接不上,或者防火墙原因,dtd文件无法下载下来导致程序报连接超时异常,解析x...
  • chjttony
  • chjttony
  • 2012-07-06 10:01:44
  • 12005

利用JAXB进行xml和javabean之间转换

Xml和javabean之间的互相转换是开发中常常遇到的问题,今天小试了一下JAXB,感觉真是太方便了,这里特此记录(JDK6中加入了JAXB,不需要额外导出包)       利用JAXB实现XML与...
  • luyuwww
  • luyuwww
  • 2013-12-11 23:58:28
  • 11878

Dom4J --- 使用dom4j解析XML时候忽略DTD文件

原文:http://www.blogjava.net/rain1102/archive/2009/08/06/290063.html 要这么做是因为Server返回给我们的X...
  • lan861698789
  • lan861698789
  • 2014-03-04 23:12:58
  • 2275
收藏助手
不良信息举报
您举报文章:根据xml文档编写dtd文件并用java代码测试
举报原因:
原因补充:

(最多只允许输入30个字)