使用XML Schema驗證XML資料輸入

2021-09-21 22:51:56 字數 1335 閱讀 1274

現在xml使用的越來越多,在sql server表中我們可以建立xml列儲存資料。 昨天在論壇看到有人說建立了乙個儲存過程處理xml,但是插入目標表的時候報錯,而報的錯誤不詳細。 其實這個問題的根本原因是xml的資料有問題,應該在插入的時候對輸入的資料進行驗證(對於使用者輸入的資料一定要做驗證)。

其實sql server已經提供了xml schema驗證,下面我們看乙個例子:

--建立

--建立錶用上面建立的

xml schema

做驗證

create

table xmlcatalog

( idint

, myinfoxml

(content mycollection));

--插入資料

insert xmlcatalo**alues

(1,'<?xmlversion="1.0"?>

isbn="1-861003-11-0">

the autobiography of benjaminfranklin

benjamin

franklin

8.99

isbn="0-201-63361-2">

the confidenceman

herman

melville

11.99

isbn="1-861001-57-6">

the gorgias

sidas

plato

9.99

')--如果

xml格式有問題報錯

insert xmlcatalo**alues

(1,'<?xmlversion="1.0"?>

isbn="1-861001-57-6">

the gorgias

sidas

plato

9.99

')msg 6913, level 16, state 1, line 1

xml validation: declaration not found for element 'book'.location: /*:book[1]

這樣的錯誤是非常清楚的,可以很快的幫助我們troubleshooting.

XML Schema使用基礎

xml extensible markup language 可擴充套件標記語言 1.xml宣告 檔案符合xml1.0規範,文字編碼為utf 8 2.命名空間 當我們使用不同文件的相同標籤時會發生衝突,使用命名空間來避免衝突。xmlns mvc xmlns context xmlns xsi xsi...

XmlSchema的驗證器(Delphi實現)

有段時間前,自己想要做乙個xmlschema的驗證器,首先想到的就是delphi的vcl中是否已經有現成的函式或者物件,經過一番查詢,發現裡面只封裝了dom中的document,對於與document密切相關的schema幾乎看不到蹤影 既然沒有現成的可以用,那麼我就用微軟留給我們的程式設計介面 1...

5800xm使用有感

自從上次去了武夷山,e63掉水裡面之後,我的手機就一直是nokia的1100,再也不能使用google地圖,opera上網衝浪了,鬱悶了好久。後來終於下定決心再重新買乙個智慧型手機,最開始想買g2,但是2400以上的 讓我心裡很是不爽,後來挑來挑去還是選了5800xm,說實話,我很是不願意買noki...