xsd學習筆記一 20160323

2021-07-10 17:04:47 字數 1850 閱讀 4782

博主第一次寫部落格,不足之處請見諒。博主隨著年齡的增長,有些事肯定記不住了,所以打算寫點部落格,記錄下自己的學習歷程,方便以後細細回味。

博主這幾天一直在看xml schema definition(xml結構定義檔案,以下全部簡稱xsd),感覺這東西對我們規範xml書寫很有用,而且也比dtd檔案強大和簡約。

所以博主**部落格打算獻給xsd了。博主的開發環境主要是eclipse-mars1,有時會用到vs2013和intelij idea。因為是學習筆記,所以學習能力是因博主而決定的,如果嫌慢的可以不看,嫌快的可以看看其他的xsd簡介,回來再看樓主的。好了廢話不多說了,開始進入正題。

首先介紹下xsd檔案的格式,xsd本身也屬於xml,只是是規範xml的xml。所以他像普通xml一樣,開頭是<?xml version="1.0" encoding="utf-8">,encoding為xml頁面編輯語言。此為xsd的描述元素。緊接著就是xsd的根元素,有且僅有乙個根元素這個元素可以帶域也可以不帶域,一般都是帶域,而且統一域為xs,域是為了約束帶域的元素是按照什麼規範約定。開啟eclipse,選擇new->xml schema definition,檔名問layout.xsd。可以看到這元素節點ide為我們預設建了4個屬性。xmlns說明沒有域字首的時候,就是全域性域時,遵守什麼約束,xmlns:tns說明的當元素域的字首是tns時,遵守什麼規範,elementformdefault="qualified"說明了xsd中所有全域性元素的子元素將被以預設方式放到targetnamespace所指向的域中,targetnamespace為預設域。那麼我們怎麼也給schema加域字首呢,其實簡單只要修改xmlns=""為xmlns:xs=""就行了,那麼我們的**就變成了1-2所示。

**1-1
<?xml version="1.0" encoding="utf-8"?>

**1-2
<?xml version="1.0" encoding="utf-8"?>

如果我們想把元素指向預設域只需要增加屬相attributeformdefault="qualified"。
xsd為我們提供了幾個基本型別,如string,integer,int,date,time等等。也允許我們定義簡單型別(******type)和複雜型別(complextype)。
xsd定義乙個簡單型別的元素很簡單,只需要就可以定義乙個簡單型別的元素。定義簡單型別的元素總計三種寫法,如下所示

**2-1

<?xml version="1.0" encoding="utf-8"?>		

xsd在xs域提供了幾個基本型別,只要直接引用就行了。

如果乙個元素包含屬性或子節點,那麼這個元素就會被視為complextype,這個之後會講到。

xsd定義屬性也很簡單,只需要 就可以定義乙個簡單型別的屬性。定義簡單型別的屬性總計三種寫法,如下所示

**3-1

<?xml version="1.0" encoding="utf-8"?>		

和元素一樣,xsd在xs域提供了幾個基本型別,只要直接引用就行了。

xml引用xsd,只需要按如下格式書寫即可。

<?xml version="1.0" encoding="utf-8"?>

我是乙個視窗

xsd學習 xsd介紹

一直以來專案中對xml格式的判斷使用的都是dtd格式,直到最近才發現,不知何時都已經轉為xsd來進行判斷和校驗,於是今天專門找資料看下,不得不說,對於這類資料的入門,w3cschool真是個不錯的資料庫,許多東西在上邊直接可以找到資料。xsd作為dtd的替代者,主要是因為如下原因 不得不說,在這裡的...

XSD詳解一 基本概念

xml schema 是基於 xml 的 dtd 替代者。xml schema 描述 xml 文件的結構。xml schema 語言也稱作 xml schema 定義 xml schema definition,xsd xml schema 的作用是定義 xml 文件的合法構建模組,類似 dtd。x...

學習筆記一

lisp 最重要的一種執行模式之一 repl that endless cycle of reading,evaluating,and printing is why it s called the read eval print loop or repl.第乙個lisp程式 在repl模式下執行l...