1. 程式人生 > >根據xml文件編寫dtd檔案並用java程式碼測試

根據xml文件編寫dtd檔案並用java程式碼測試

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編寫不正確則結果會丟擲異常。

相關推薦

根據xml編寫dtd檔案並用java程式碼測試

xml檔案:<應聘資訊> <應聘者> <姓名> 張三 </姓名> <碩士> 湖南大學計算機理學碩士 </碩士> <獎勵> 獲得計算機競賽

XML課後練習答案(五)——XML編寫小測驗答案分享

題目:請用XML語言編寫描述下面的學生成績單的XML文件, 並請編寫該XML文件的文件型別定義DTD。 註解:平均成績那一欄是在xsl中用函式求的,在xml文件中只需要描述最基本結構即可,所以小夥伴看後面程式碼壓根沒有對這一欄的描述不用驚慌哦。這次分享是我自己的理解可能

XML中引入外部DTD檔案

XML文件通過使用DOCTYPE宣告語句(文件型別定義語句)來指明它所遵循的DTD檔案, DOCTYPE宣告語句緊跟在XML文件宣告語句後面,有兩種格式: 1.<!DOCTYPE 文件型別名稱 SYSTEM  "DTD文件的URL"> 2.<!DOCTYP

XML(二)之DTD——XML約束

clas bsp closed 實體 寫敏感 大小 div 指定元素 don 前面介紹了XML的作用和基本的格式,今天我給大家分享的是關於XML的約束。廢話不多說,我們直接來正題! 一、DTD簡介 1.1、DTD概述   DTD(Document Type Defin

XML DTD約束 對xml的crud的查詢Read Retrieve操作 xml遞歸遍歷

exception 文件的 rgs oid ioe 8.0 private throws wid 本地的dtd文檔 xml中引入dtd文檔 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE 書架 SY

java基礎 xml 使用dom4j解析 xml servlet根據pattern 找到class

col demo gpo string java OS pattern mapping unit package com.swift.kaoshi; import java.io.File; import java.util.List; import java.util

XML課後練習答案(七)——XSL編寫小測驗答案分享

題目: 已知學生的簡歷的XML文件內容如下: <?xml version="1.0" encoding="gb2312"?> <學生> <個人基本資訊>  <照片>miffy.jpg</照片> <姓

xml基於DTDXML有效性驗證

實驗工具:xmlspy2013、firefox;實驗問題:1.分析下列XML例項,編寫DTD文件,並進行驗證。 <?xml version=”1.0” encoding=”GB2312”> <學生名冊>  <學生 學號="A">  

C# 載入xml檔案及載入xml字串

//建立XmlDocument物件 XmlDocument xmlDoc = new XmlDocument(); //載入xml檔名 xmlDoc.Load(filename); //如果是xml字串,則用以下形式 xmlDoc.LoadXml(xmldata

為Eclipse新增XML所使用的DTDXML Schema(xml編輯提示)

  (1)    DTD         1)    定位到:             WIndow->Preferences->MyEclipse->XML->XML Catalog             2)    在右邊的介面中,選擇"Us

關於Spring配置檔案xml的schema約束

最開始使用Spring框架的時候,對於其配置檔案xml,只是網上得知其使用方法,而不明其意。最近想著尋根問底的探究一下。以下是本文主要內容: 1、配置檔案示例。 <?xml version="1.0" encoding="UTF-8"?> <beans x

[XML解析]libxml2對XML檔案的建立、解析、查詢、修改

xmlXPathObjectPtr get_nodeset(xmlDocPtr doc, const xmlChar *xpath) { xmlXPathContextPtr context; xmlXPathObjectPtr result; context = xmlXP

XML 定義的兩種形式(DTD,SCHEMA)

XML DTD是目前使用比較廣泛的一種XML模式,而XML SCHEMA是W3C官方推薦的XML定義格式。 DTD 指定:可以在文件中存在的元素、那些元素可以具有的屬性、在元素內部元素的層次結構以及元素在整個文件中出現的順序。 XML Schema 是基於 XML 的

XMLSchema.xsd 檔案約束xml格式內容

XMLSchema.xsd 檔案,用來約束xml內容格式的。<?xml version="1.0" encoding="utf-8"?> <xs:schema id="XMLSchemaLettle" targetNamespace="http:/

根據xsd生成xml的c#實現(轉)

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;us

spring中applicationContex.xml

span -name start resource oca default spa 文件 mapping <mvc:resources mapping="/js/**" location="/WEB_INF/js"/>主要用於靜態資源的訪問. 使用springM

java解析xml練習——通過應用包名獲取應用圖標即其他信息(基於魅族應用商店)

fin vma tdm row con smartd enter music close 1、解析包名數據文件(txt文件),並生成包名數組: package jsouphtml; import java.io.BufferedReader; import j

pom.xml錯誤

update in 但是 last 想要 interval plugin ror oca tor 剛創建的maven項目,馬上pom.xml的第一行就報錯這是第一行:<project xmlns="http://maven.apache.org/POM/4.0.0"

java 生成 xml

new output org enc class 註意 created ear str   解析會了,那接著來學學生成~   同樣的引入依賴: import java.io.File; import java.io.FileOutputStream; import or

maven項目打包的時候,*Mapper.xml 會打不不進去解決辦法

java cli 項目打包 per 不同 cto build direct ring 打包的時候,不同版本的 Eclipse 還有IDEA 會有打包打不進去Mapper.xml 文件,這個時候要加如下代碼, 在<build> 標簽內加入即可 <resou