XMLnamespaces
XMLNAMESPACE 宣告會從引數建構名稱空間宣告。 此宣告只能用作 XMLXX_ENCODE_CASE_ONE Element 及 XMLFOREST 函數的引數。 結果是一或多個 XML 名稱空間宣告,其中包含每一個非空值輸入值的範圍內名稱空間。
- namespace-uri
- 指定包含名稱空間名稱或通用資源 ID (URI) 的 SQL 字串常數。 如果字串常數與 namespace-prefix一起使用,則不得是空字串。
- AS namespace-prefix
- 指定名稱空間字首。 字首是必須採用 XML NCName 格式的 SQL ID。 如需有效名稱的詳細資料,請參閱 W3C XML 名稱空間規格。 字首不能是 "xml" 或 "xmlns"。 在名稱空間宣告清單中,字首必須是唯一的。
- DEFAULT namespace-uri 或 NO DEFAULT
- 指定是否要在此名稱空間宣告的範圍內使用預設名稱空間。
此函數的結果是一個 XML 值,它是一個 XML 序列,包含每一個指定名稱空間的 XML 名稱空間宣告。 結果不能是空值。
範例
附註: XML 處理不會在輸出中插入空格或換行字元。 已格式化所有範例輸出,以加強可讀性。
- 為每一個員工產生「員工」元素。 員工元素與 XML 名稱空間 "urn:bo" 相關聯,其連結至字首 "bo"。 元素包含名稱及 hiredate 子元素的屬性。
SELECT E.EMPNO, XMLSERIALIZE(XMLELEMENT(NAME "bo:employee", XMLNAMESPACES('urn:bo' AS "bo"), XMLATTRIBUTES(E.LASTNAME, E.FIRSTNME), XMLELEMENT(NAME "bo:hiredate", E.HIREDATE)) AS CLOB(200)) FROM EMPLOYEE E WHERE E.EDLEVEL = 12此查詢會產生下列結果:
00029 <bo:employee xmlns:bo="urn:bo" LASTNAME="PARKER" FIRSTNME="JOHN"> <bo:hiredate>1988-05-30</bo:hiredate> </bo:employee> 00031 <bo:employee xmlns:bo="urn:bo" LASTNAME="SETRIGHT" FIRSTNME="MAUDE"> <bo:hiredate>1964-09-12</bo:hiredate> </bo:employee> - 使用 XMLFOREST 為每一個員工產生兩個元素。 第一個 "lastname" 元素與預設名稱空間 "http://hr.org" 相關聯,第二個 "job" 元素與 XML 名稱空間 "http://fed.gov" 相關聯,其連結至字首 "d"。
SELECT EMPNO, XMLSERIALIZE(XMLFOREST(XMLNAMESPACES(DEFAULT 'http://hr.org', 'http://fed.gov' AS "d"), LASTNAME, JOB AS "d:job") AS CLOB(200)) FROM EMPLOYEE WHERE EDLEVEL = 12此查詢會產生下列結果:
00029 <LASTNAME xmlns="http://hr.org" xmlns:d="http://fed.gov">PARKER </LASTNAME> <d:job xmlns="http://hr.org" xmlns:d="http://fed.gov"> OPERATOR</d:job> 00031 <LASTNAME xmlns="http://hr.org" xmlns:d="http://fed.gov"> SETRIGHT</LASTNAME> <d:job xmlns="http://hr.org" xmlns:d="http://fed.gov"> OPERATOR</d:job>
