關於AXSD和SQLXML BULK LOAD

kitesky發表於2007-02-15
SQLXML是SQL SERVER對XML支援元件。透過它,我們可以快速的把XML讀取到資料庫表中;在這個過程開始前,我們需要使用AXSD來為XML和表之間定義mapping,這個過程叫做為表定義了XML檢視。[@more@]

一 AXSD
1. 一定要在子表上定義和父表的relationship;如果沒有指定,則錯誤提示子表Schema上需要relationship而未指定;
2. complexType相當於子表。當不能直接在complexType上新增relationship批註(annotation)。應該將這個批註新增在使用這個complexType的地方;
3. 在XSD中,屬性和元素有什麼區別嗎?
屬性是單值;而元素如果放在sequence中,它將表示子表的列;與其上級節點形成了父子表的關係;
4. 名稱空間
宣告名稱空間:xmlns:=""
QName:限定名稱;
預設名稱空間:
名稱空間的指定僅對本元素起作用;
若不為元素指定名稱空間,則使用預設名稱空間;
若不為屬性制定名稱空間,則屬性不屬於名稱空間;
將預設名稱空間識別符號設定為空字串,則取消本元素使用預設的名稱空間;但帶字首的名稱空間不可取消;
5. 主從表的分解
主表不變,子表上增加主表的PK做FK;
二 SQLXML BULK LOAD
SchemaGen: generate table;
SGDropTables: re-create Table;
CheckConstraints: check constraints;
XMLFragment: declare it's a fragment;

XML和AXSD要麼同時定義targetNamesapce,或者都不定義。這樣才能將資料匯入到表中。否則,只能自動建立表結構而資料無法匯入;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-899667/,如需轉載,請註明出處,否則將追究法律責任。

相關文章