XMLnamespaces

XMLNAMESPACE 宣告會從引數建構名稱空間宣告。 此宣告只能用作 XMLXX_ENCODE_CASE_ONE Element 及 XMLFOREST 函數的引數。 結果是一或多個 XML 名稱空間宣告,其中包含每一個非空值輸入值的範圍內名稱空間。

讀取語法圖跳過視覺化語法圖XMLNAMESPACES( ,namespace-uriAS名稱空間字首1DEFAULTnamespace-uriNO DEFAULT )
附註:
  • 1 DEFAULT 或 NO DEFAULT 子句只能指定一次。
namespace-uri
指定包含名稱空間名稱或通用資源 ID (URI) 的 SQL 字串常數。 如果字串常數與 namespace-prefix一起使用,則不得是空字串。
AS namespace-prefix
指定名稱空間字首。 字首是必須採用 XML NCName 格式的 SQL ID。 如需有效名稱的詳細資料,請參閱 W3C XML 名稱空間規格。 字首不能是 "xml" 或 "xmlns"。 在名稱空間宣告清單中,字首必須是唯一的。
下列名稱空間字首已預先定義在 SQL/XML 中: "xml "、" xs "、" xsd "、" xsi "和" sqlxml "。 它們的連結如下:
  • xmlns: xml = "http://www.w3.org/XML/1998/namespace"
  • xmlns: xs = "http://www.w3.org/2001/XMLSchema"
  • xmlns: xsd = "http://www.w3.org/2001/XMLSchema"
  • xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
  • xmlns: sqlxml = "http:/standards.iso.org/iso/9075/2003/sqlxml"
DEFAULT namespace-uri 或 NO DEFAULT
指定是否要在此名稱空間宣告的範圍內使用預設名稱空間。
這個名稱空間宣告的範圍是指定的 XML 元素,以及包含在指定 XML 元素中的所有 XML 表示式。
DEFAULT namespace-uri
指定要在此名稱空間宣告的範圍內使用的預設名稱空間。 namespace-uri 適用於範圍中的不完整名稱,除非在巢狀範圍中被另一個 DEFAULT 宣告或 NO DEFAULT 宣告置換。
namespace-uri 指定包含名稱空間名稱或通用資源 ID (URI) 的 SQL 字串常數。 在 DEFAULT 子句的環境定義中,字串常數可以是空字串。
無預設值
指定在此名稱空間宣告的範圍內不使用預設名稱空間。 除非以 DEFAULT 宣告置換巢狀範圍中的 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>