現在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...