日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

JavaWeb学习笔记(XML语言)

發(fā)布時間:2023/12/14 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb学习笔记(XML语言) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

知識點總結(jié)于崔希凡+王澤(廣陵散)的JavaWeb視頻教程,侵權(quán)請聯(lián)系刪除。

XML

  • XML
    • 簡介
    • XML的應(yīng)用
      • XML常見應(yīng)用
    • XML的語法規(guī)則
      • 文檔聲明
      • 元素(標(biāo)簽)定義
      • 屬性定義
      • 注釋
      • 特殊字符
        • CDATA區(qū)
      • 處理指令
      • 小結(jié)
    • XML約束
      • 概述
      • DTD約束
        • 使用DTD定義元素
        • 使用DTD定義屬性
        • 定義實體
      • Schema約束
        • XMLSchema文檔基本結(jié)構(gòu)
        • XMLSchema簡易元素和復(fù)雜元素
        • XMLSchema復(fù)雜元素指示器
          • 約束屬性
        • 對XML Schema的引用
          • 名稱空間的概念
          • 使用名稱空間引入Schema
        • 示例

XML

簡介

XML(eXtensible Markup Language): 指可擴(kuò)展標(biāo)記語言

  • 標(biāo)記型語言:html是標(biāo)記型語言,XML也是使用標(biāo)簽來操作的
  • 可擴(kuò)展:html里面的標(biāo)簽是固定,每個標(biāo)簽都有特定的含義例如:<h1> <br/> <hr/>,但是XML標(biāo)簽可以自己定義,可以寫中文的標(biāo)簽 例如:<person></person>、<貓></貓>
    XML標(biāo)簽沒有被預(yù)定義,需要用戶自行定義標(biāo)簽
  • XML的用途:XML 被設(shè)計用來傳輸和存儲數(shù)據(jù)(XML也可顯示數(shù)據(jù),但不是主要功能)。
  • XML技術(shù)是W3C組織(World Wide Web Consortium萬維網(wǎng)聯(lián)盟)發(fā)布的,目前遵循的是W3C組織于2000年發(fā)布的XML1.0規(guī)范。
    xml有兩個版本:1.0 1.1
    使用都是1.0版本,(1.1版本不能向下兼容)
  • XML被廣泛認(rèn)為是繼Java之后在Internet上最激動人心的新技術(shù)。

XML的應(yīng)用

  • XML語言出現(xiàn)的根本目的在于描述向上圖那種有關(guān)系的數(shù)據(jù)。
  • XML是一種通用的數(shù)據(jù)交換格式
  • 在XML語言中,它允許用戶自定義標(biāo)簽。一個標(biāo)簽用于描述一段數(shù)據(jù);一個標(biāo)簽可分為開始標(biāo)簽和結(jié)束標(biāo)簽,在起始標(biāo)簽之間,又可以使用其它標(biāo)簽描述其它數(shù)據(jù),以此來實現(xiàn)數(shù)據(jù)關(guān)系的描述。
  • XML中的數(shù)據(jù)必須通過軟件程序來解析執(zhí)行或顯示,如IE;這樣的解析程序稱之為Parser(解析器)。

XML常見應(yīng)用

  • 用于描述qq直接傳輸數(shù)據(jù),使用xm格式進(jìn)行描述,具有可讀性和可維護(hù)性
  • XML技術(shù)除用于保存有關(guān)系的數(shù)據(jù)之外,它還經(jīng)常用作軟件配置文件,以描述程序模塊之間的關(guān)系。(如Struts、Spring和Hibernate都是基于XML作為配置文件的)
  • 在一個軟件系統(tǒng)中,通過XML配置文件可以提高系統(tǒng)的靈活性。即程序的行為是通過XML文件來配置的,而不是硬編碼。

XML的語法規(guī)則

文檔聲明

  • 在編寫XML文檔時,需要先使用文檔聲明來聲明XML文檔,且必須出現(xiàn)在文檔的第一行。(寫了文檔聲明之后,表示寫xml文件的內(nèi)容)
    最簡單的語法:<?xml version=“1.0”?>
  • encoding屬性說明文檔所使用的字符編碼。保存在磁盤上的文件編碼要與聲明的編碼一致,否則會出現(xiàn)亂碼
    因為碼表中存儲的相同字符的位置不一樣,如果按照GBK碼表存儲字符,假定“你好”位置分別在1和2,而通過UTF-8打開,因為UTF-8碼表中1 2位置上的字符是其它字符,所以會出現(xiàn)亂碼。
    字符編碼強(qiáng)行將每一個字符對應(yīng)一個十進(jìn)制數(shù)字,再將十進(jìn)制數(shù)字轉(zhuǎn)換成計算機(jī)理解的二進(jìn)制,而計算機(jī)讀到這些1和0之后就會顯示出對應(yīng)的文字或符號。
    如:<?xml version=“1.0” encoding=“GB2312”?>
  • standalone屬性說明文檔是否獨立,即是否依賴其他文檔。
    如:<?xml version=“1.0” standalone=“yes”?>

元素(標(biāo)簽)定義

  • XML元素指XML文件中出現(xiàn)的標(biāo)簽。一個標(biāo)簽分為起始和結(jié)束標(biāo)簽(不能省略)。一個標(biāo)簽有如下幾種書寫形式:
    1.包含標(biāo)簽主體:<mytag>some content</mytag>
    2.不含標(biāo)簽主體:<mytag/>

  • 一個標(biāo)簽中可以嵌套若干子標(biāo)簽,但所有標(biāo)簽必須合理的嵌套,不允許有交叉嵌套。
    錯誤示例:<mytag1><mytag2></mytag1></mytag2>

  • 一個XML文檔必須有且僅有一個根標(biāo)簽,其他標(biāo)簽都是這個根標(biāo)簽的子標(biāo)簽或?qū)O標(biāo)簽。

  • 對于XML標(biāo)簽中出現(xiàn)的所有空格和換行,XML解析程序都會當(dāng)作標(biāo)簽內(nèi)容進(jìn)行處理。例如下面兩段內(nèi)容的意義是不一樣的:

    • <網(wǎng)址>www.itcast.cn</網(wǎng)址>
    • <網(wǎng)址>
      ????www.itcast.cn
      </網(wǎng)址>

    由于在XML中,空格和換行都作為原始內(nèi)容被處理,所以,在編寫XML文件時,使用換行和縮進(jìn)等方式來讓原文件中的內(nèi)容清晰可讀的“良好”書寫習(xí)慣可能要被迫改變。

  • 一個XML元素可以包含字母、數(shù)字以及其它一些可見字符,但必須遵守下面的一些規(guī)范:

    • 區(qū)分大小寫,例如,<P>和<p>是兩個不同的標(biāo)記
    • 不能以數(shù)字或"_" (下劃線)開頭
    • 不能以xml(或XML、或Xml 等)開頭
    • 不能包含空格
    • 名稱中間不能包含冒號(:)

屬性定義

  • 一個元素可以有多個屬性,每個屬性都有它自己的名稱和取值,例如:<mytag name=“value” …/>

  • 屬性值一定要用引號(單引號或雙引號)引起來

  • 屬性名稱的命名規(guī)范與元素的命名規(guī)范相同

  • 元素中的屬性是不允許重復(fù)

  • 在XML技術(shù)中,標(biāo)簽屬性所代表的信息也可以被改成用子元素的形式來描述,例如:

    <mytag><name><firstName/><lastName/></name></mytag>

注釋

  • XML中的注釋語法為:<!–這是注釋–>
  • 注意:
    1.XML聲明之前不能有注釋(即第一行)
    2.注釋不能嵌套,例如:

特殊字符

  • 在xml文檔中有些字符是特殊的,不能使用它們作為文本數(shù)據(jù)。例如:不能使用“<”或“>”等字符作為文本數(shù)據(jù),所以需要使用轉(zhuǎn)義字符來表示。
    例如在xml中直接輸入 a<b ,結(jié)果不能正常顯示,因為把<當(dāng)做了標(biāo)簽
    如果就想要顯示,需要對特殊字符 < 進(jìn)行轉(zhuǎn)義:a &lt; b

CDATA區(qū)

當(dāng)大量的轉(zhuǎn)義字符出現(xiàn)在xml文檔中時,會使xml文檔的可讀性大幅度降低。這時如果使用CDATA段就會好一些。
在CDATA段中出現(xiàn)的“<”、“>”、“””、“’”、“&”,都無需使用轉(zhuǎn)義字符。這可以提高xml文檔的可讀性。

  • 書寫格式(紅色部分):

<a><![CDATA[ <a> ]]></a>

處理指令

處理指令,簡稱PI(Processing instruction)。處理指令用來指揮解析器如何解析XML文檔內(nèi)容。

  • 例如,在XML文檔中可以使用xml-stylesheet指令,通知XML解析器,應(yīng)用css文件顯示xml文檔內(nèi)容:<?xml-stylesheet type="text/css" href="a.css"?>
    處理指令以“<?”開頭,以“?>”結(jié)束,這一點與xml文檔聲明相同。

CSS:
gj1 {font-size: 200px; color: red;}
gj2 {font-size: 100px; color: green;}
gj3 {font-size: 10px;}
gj4 {font-size: 50px; color: blue;}

XML:

<?xml version="1.0" encoding="gbk"?> <?xml-stylesheet type="text/css" href="a.css" ?>

<gjm>
?<gj1>中國</gj1>
<gj2>美國</gj2>
<gj3>日本</gj3>
<gj4>英國</gj4>
</gjm>

小結(jié)

  • 所有 XML 元素都須有關(guān)閉標(biāo)簽
  • XML 標(biāo)簽對大小寫敏感
  • XML 必須正確地嵌套順序
  • XML 文檔必須有根元素(只有一個)
  • XML 的屬性值須加引號
  • 特殊字符必須轉(zhuǎn)義 — CDATA
  • XML 中的空格、回車換行會解析時被保留

XML約束

概述

在XML技術(shù)里,可以編寫一個文檔來約束一個XML文檔的書寫規(guī)范(與xml語法無關(guān)),這稱之為XML約束。

  • 為什么需要XML約束?
    因為xml文檔是可以自定義元素的,這會讓使用xml文檔的應(yīng)用程序無法知道xml文檔的真實結(jié)構(gòu)。通常應(yīng)用程序都會要求xml文件的結(jié)構(gòu)是固定的,以滿足自己的需求,這就說明,不同的應(yīng)用程序要求自己的xml文檔必須符合一定的要求。
  • 兩個概念:
    格式良好的XML:遵循XML語法的XML
    有效的XML:遵循約束文檔的XML

    總之:約束文檔定義了在XML中允許出現(xiàn)的元素名稱、屬性及元素出現(xiàn)的順序等等
  • 常用的約束技術(shù):
    XML DTD
    XML Schema

DTD約束

DTD(Document Type Definition),全稱為文檔類型定義。dtd是平面式文檔,dtd文件不是xml文檔,通常擴(kuò)展名為“.dtd”。它是最早的xml約束。

什么是DTD約束?
 DTD(Document Type Definition),文檔類型定義,用來約束XML文檔。例如要求xml文檔的根元素必須是,在元素下可以包含0~n個元素,每個元素必須有一個number屬性,而且還要有三個子元素,分別<name>、<age>、<sex>,這三個子元素的內(nèi)容必須為文本內(nèi)容,而不能是子元素。

創(chuàng)建步驟:

  • 看xml中有多少個元素 ,有幾個元素,在dtd文件中寫幾個 <!ELEMENT>
  • 判斷元素是簡單元素還是復(fù)雜元素
    復(fù)雜元素:有子元素的元素
    <!ELEMENT 元素名稱 (子元素)>
    簡單元素:沒有子元素
    <!ELEMENT 元素名稱 (#PCDATA)>
    注意:元素名稱和括號之間存在空格,不然格式錯誤
  • 需要在xml文件中引入dtd文件
  • 注意:如果我們打開xml文件是用瀏覽器打開的,由于瀏覽器只負(fù)責(zé)校驗xml的語法,不負(fù)責(zé)校驗約束,所以不會起到約束作用。

    如果想要校驗xml的約束,需要使用工具(myeclipse工具、Idea)。

    DTD的三種引入方式:
    DTD約束即可以作為一個單獨的文件編寫,也可以在XML文件內(nèi)編寫。

  • 使用外部DTD
    <!DOCTYPE 根元素名稱 SYSTEM “dtd路徑”>
  • 使用內(nèi)部DTD
    <!DOCTYPE person [
    <!ELEMENT person (name,age)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT age (#PCDATA)>
    ]>
  • 使用公共DTD(網(wǎng)絡(luò)上的dtd文件)
    <!DOCTYPE 根元素 PUBLIC “DTD名稱” “DTD文檔的URL”>
    框架 struts2 使用配置文件就是外部的dtd文件
    示例:<!DOCTYPE struts PUBLIC “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN” “http://struts.apache.org/dtds/struts-2.0.dtd”>
  • 使用DTD定義元素

    • 在DTD文檔中使用ELEMENT關(guān)鍵字來聲明一個XML元素。

    • 語法:<!ELEMENT 元素名稱 使用規(guī)則>
      規(guī)則:
      (#PCDATA):指示元素的主體內(nèi)容只能是普通的文本.(Parsed Character Data)
      EMPTY:用于指示元素的主體為空。比如<br/>
      ANY:用于指示元素的主體內(nèi)容為任意類型(可以為空)。
      (子元素):指示元素中包含的子元素

    • 定義子元素及描述它們的關(guān)系:

      • 如果子元素用逗號分開,說明必須按照聲明順序去編寫XML文檔。
        如: <!ELEMENT FILE (TITLE,AUTHOR,EMAIL) 標(biāo)簽要從TITLE開始到EMAIL結(jié)束的順序書寫
      • 如果子元素用“|”分開,說明任選其一。
        如:<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)(只能在三個標(biāo)簽中選擇一個)
      • 用+、*、?來表示元素出現(xiàn)的次數(shù)
        +:表示至少出現(xiàn)一次,一次或多次
        *:表示可有可無,零次、一次或多次
        ?:表示可以有也可以無,有的話只能有一次。零次或一次

    圖例:

    使用DTD定義屬性

    • 屬性的定義格式:
    <!ATTLIST 元素名稱屬性名稱 屬性類型 屬性的約束>
    • 示例:
    <!ATTLIST 商品類別 CDATA #REQUIRED 必須的顏色 CDATA #IMPLIED 可選的 ><!-- 對應(yīng)的XML為: --> <商品 類別=“服裝” 顏色=“黃色”/>
    • 屬性值類型:
      CDATA:表示屬性的取值為普通的文本字符串
      ENUMERATED (DTD沒有此關(guān)鍵字):表示枚舉,只能從枚舉列表中任選其一,如(雞肉|牛肉|豬肉|魚肉)
      ID:表示屬性的取值不能重復(fù),屬性的值只能由字母,下劃線開始,不能出現(xiàn)空白字符

      如果把student元素的number屬性設(shè)定為ID類型,那么每個student元素的number屬性值必須是唯一的,并且ID類型的屬性值不能以數(shù)字開頭
    • 屬性約束設(shè)置說明:
      #REQUIRED:表示該屬性必須出現(xiàn)
      #IMPLIED:表示該屬性可有可無
      #FIXED:表示屬性的取值為一個固定值。語法:#FIXED “固定值”
      直接值(直接輸入一個值):表示屬性的取值為該默認(rèn)值

    示例:

    <!ATTLIST 頁面作者 姓名 CDATA #IMPLIED 年齡 CDATA #IMPLIED 聯(lián)系信息 CDATA #REQUIRED 網(wǎng)站職務(wù) CDATA #FIXED "頁面作者" 個人愛好 CDATA "上網(wǎng)">

    根元素為 頁面作者 ,姓名元素和年齡元素的文本內(nèi)容可有可無,聯(lián)系信息元素的文本內(nèi)容必須出現(xiàn)。

    定義實體

    實體用于為一段內(nèi)容創(chuàng)建一個別名,以后在XML文檔中就可以使用別名引用這段內(nèi)容了。相當(dāng)于在Java中的用final定義一個常量值。

    • 語法:<!ENTITY 實體名稱 “實體內(nèi)容”>
    • 概念:在DTD中定義,在XML中使用
    • 引用方式(注意是在XML中使用):&實體名稱;

    Schema約束

    XML Schema 也是一種用于定義和描述 XML 文檔結(jié)構(gòu)與內(nèi)容的模式語言,其出現(xiàn)是為了克服 DTD 的局限性

    概念:

    • XML Schema 文件自身就是一個XML文件,但它的擴(kuò)展名通常為.xsd
    • 和XML文件一樣,一個XML Schema文檔也必須有一個根結(jié)點,但這個根結(jié)點的名稱為Schema
    • 應(yīng)用schema約束,開發(fā)xml過程

    • 編寫了一個XML Schema約束文檔后,通常需要把這個文件中聲明的元素綁定到一個URI地址上,這個URI地址叫namespace名稱空間,以后XML文件就可以通過這個URI(即名稱空間)引用綁定指定名稱空間的元素

    XML Schema的特點:

    • XML Schema符合XML語法結(jié)構(gòu)。
    • DOM、SAX等XML API很容易解析出XML Schema文檔中的內(nèi)容。
    • XML Schema對名稱空間支持得非常好。
    • XML Schema比XML DTD支持更多的數(shù)據(jù)類型,并支持用戶自定義新的數(shù)據(jù)類型。
    • XML Schema定義約束的能力非常強(qiáng)大,可以對XML實例文檔作出細(xì)致的語義限制。
    • XML Schema不能像DTD一樣定義實體,比DTD更復(fù)雜,但Xml Schema現(xiàn)在已是w3c組織的標(biāo)準(zhǔn),它正逐步取代DTD。

    Schema和DTD區(qū)別:
    XML從SGML中繼承了DTD,并用它來定義內(nèi)容的模型,驗證和組織元素。同時,它也有很多局限:

    • DTD不遵守XML語法;
    • DTD不可擴(kuò)展;
    • DTD不支持命名空間的應(yīng)用;
    • DTD沒有提供強(qiáng)大的數(shù)據(jù)類型支持,只能表示很簡單的數(shù)據(jù)類型。

    Schema完全克服了這些弱點,使得基于Web的應(yīng)用系統(tǒng)交換XML數(shù)據(jù)更為容易。下面是它所展現(xiàn)的一些新特性:

    • Schema完全基于XML語法,不需要再學(xué)習(xí)特殊的語法;
    • Schema能用處理XML文檔的工具處理,而不需要特殊的工具;
    • Schema大大擴(kuò)充了數(shù)據(jù)類型,支持booleans、numbers、dates and times、URIs、integers、decimal numbers和real numbers等;
    • Schema支持原型,也就是元素的繼承。如:我們定義了一個“聯(lián)系人”數(shù)據(jù)類型,然后可以根據(jù)它產(chǎn)生“朋友聯(lián)系人”和“客戶聯(lián)系”兩種數(shù)據(jù)類型;
    • Schema支持屬性組。我們一般聲明一些公共屬性,然后可以應(yīng)用于所有的元素,屬性組允許把元素、屬性關(guān)系放于外部定義、組合;
    • 開放性。原來的DTD只能有一個DTD應(yīng)用于一個XML文檔,現(xiàn)在可以有多個Schema運用于一個XML文檔

    XMLSchema文檔基本結(jié)構(gòu)

    • 在W3C XML schema規(guī)范中規(guī)定:所有的Schema文檔都使用 <schema>作為其根元素
    • <schema>元素可以包含一些屬性。一個XML schema聲明看起來經(jīng)常以如下的形式出現(xiàn):
      <schema xmlns=“http://www.w3.org/2001/XMLSchema”
      targetNamespace=“http://www.itcast.cn/20140213”
      elementFormDefault=“qualified”>

      xmlns="http://www.w3.org/2001/XMLSchema"代表當(dāng)前xml文件是一個約束文件;
      targetNamespace="http://www.itcast.cn/20140213"代表如果要使用schema約束文件,直接通過這個地址引入約束文件;
      elementFormDefault="qualified"代表在xml中,所有引用xsd的全局的元素都必須加上命名空間的前綴
    <?xml version="1.0"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itcast.cn/20140213" elementFormDefault="qualified">... </schema>

    XMLSchema簡易元素和復(fù)雜元素

    • 簡易元素:指那些僅包含文本的元素。它不會包含任何其他的元素或?qū)傩浴?br /> <element name=“xxx” type=“string"/>
    • 復(fù)雜元素:復(fù)雜類型元素是包含子元素或者屬性的元素
      使用<complexType>:表示復(fù)雜類型
    • <sequence>:表示有順序

    示例:XML文件有一個根元素person,根元素中有一個元素person,其中包含兩個子類元素to和from

    <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/1111" elementFormDefault="qualified"><element name="person"><complexType><sequence><element name="man"><complexType><sequence><element name="name" type="string"></element><element name="age" type="string"></element></sequence></complexType></element></sequence></complexType></element> </schema>

    XMLSchema復(fù)雜元素指示器

    All:表示只能出現(xiàn)一次
    Choice: 只能出現(xiàn)其中的一個
    Sequence:元素按照順序出現(xiàn)
    maxOccurs=“unbounded” 表示出現(xiàn)次數(shù)沒限制
    定義屬性(必須是復(fù)雜元素):<attribute name=“p1” type=“string” use=“required”></attribute>
    <any></any>:表示任意元素

    約束屬性
    • 寫在復(fù)雜元素里面
    • 寫在</complexType>之前
      例如:
      <attribute name=“id1” type=“int” use=“required”>
      代表該元素名稱為id1,屬性類型為int,且必須出現(xiàn)

    對XML Schema的引用

    • Schema和被約束的xml都是xml文檔,如何區(qū)分哪個是被約束的文檔?
      使用名稱空間區(qū)分被約束文檔(使用w3c名稱空間)
      xmlns=“http://www.w3.org/2001/XMLSchema-instance” 代表當(dāng)前的文檔是一個實例文檔(被約束的文檔)
    • 引用自定義的schema,使用自定義的名稱空間
      由于一個標(biāo)簽上不能出現(xiàn)兩個同名的屬性,所以需要給名稱空間起一個別名xsi。xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
      引用本地xsd文件存放位置,使用schemaLocation:代表的是Schema文檔存放的路徑
    <?xml version="1.0" encoding="utf-8"?> <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.itcast.cn/20140213" xsi:schemaLocation="http://www.itcast.cn/20140213 node.xsd"><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body> </note>
    名稱空間的概念
    • 在XML Schema中,每個約束模式文檔都可以被賦以一個唯一的名稱空間,名稱空間用一個唯一的URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)表示。 在Xml文件中書寫標(biāo)簽時,可以通過名稱空間聲明(xmlns),來聲明當(dāng)前編寫的標(biāo)簽來自哪個Schema約束文檔。如:
      <itcast:書架 xmlns:itcast=“http://www.itcast.cn”>
      <itcast:書>……</itcast:書>
      </itcast:書架>
      此處使用itcast來指向聲明的名稱,以便于后面對名稱空間的引用。
    • 注意:名稱空間的名字語法容易讓人混淆,盡管以 http:// 開始,那個 URL 并不指向一個包含模式定義的文件。事實上,這個 URL:http://www.itcast.cn根本沒有指向任何文件,只是一個分配的名字。
    使用名稱空間引入Schema
    • 為了在一個XML文檔中聲明它所遵循的Schema文件的具體位置,通常需要在Xml文檔中的根結(jié)點中使用schemaLocation屬性來指定,例如:
      <itcast:書架 xmlns:itcast=“http://www.itcast.cn”
      xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
      xsi:schemaLocation=“http://www.itcast.cn book.xsd">
    • schemaLocation此屬性有兩個值。第一個值是需要使用的命名空間。第二個值是供命名空間使用的 XML schema 的位置,兩者之間用空格分隔。
    • 注意,在使用schemaLocation屬性時,也需要指定該屬性來自哪里。

    示例:
    company.xml

    company.xsd

    department.xsd

    示例

    為students.xml編寫DTD:

    <!ELEMENT students (student+)> <!ELEMENT student (name,age,sex)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ATTLIST student number CDATA #REQUIRED>

    為students.xml編寫schema:

    <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="students" type="studentsType"/><xsd:complexType name="studentsType"><xsd:sequence><xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType><xsd:complexType name="studentType"><xsd:sequence><xsd:element name="name" type="xsd:string"/><xsd:element name="age"><xsd:simpleType><xsd:restriction base="xsd:integer"><xsd:maxInclusive value="100"/><xsd:minInclusive value="0"/></xsd:restriction></xsd:simpleType></xsd:element><xsd:element name="sex"><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:enumeration value=""/><xsd:enumeration value=""/></xsd:restriction></xsd:simpleType></xsd:element></xsd:sequence><xsd:attribute name="number" type="xsd:string"/></xsd:complexType> </xsd:schema>

    參照Schema編寫XML文檔:
    我們參照上面的Schema文檔編寫一個studens.xml文件

    <?xml version="1.0" encoding="utf-8" standalone="no" ?> <students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="students.xsd"><student number="ID_1001"><name>張三</name><age>23</age><sex></sex></student><student number="ID_1002"><name>李四</name><age>32</age><sex></sex></student><student number="ID_1003"><name>王五</name><age>50</age><sex></sex></student> </students>

    總結(jié)

    以上是生活随笔為你收集整理的JavaWeb学习笔记(XML语言)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。