XMLPARSE演算�

XMLPARSE��文字列�を構文解���DerbyXML値��るSQL/XML演算���。

ã?“ã?®æ¼”ç®—å­?ã?®çµ?果を一時的ã?ªå€¤ã?¨ã?—ã?¦ä½¿ã?†ã?“ã?¨ã‚‚ã?§ã??ã?¾ã?™ã?—ã€?Derbyã?®XML列ã?«å€¤ã‚’æ ¼ç´?ã?™ã‚‹ã?“ã?¨ã‚‚ã?§ã??ã?¾ã?™ã€‚ 一時的ã?‹æ°¸ç¶šçš„ã?‹ã?«ã?‹ã?‹ã‚?らã?šã€?XMLã?®å€¤ã‚’XMLEXISTSã‚„XMLQUERYã?®ã‚ˆã?†ã?ªã€?ä»–ã?®DerbyXML演算å­?ã?®å…¥åŠ›ã?¨ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚

æ§‹æ–‡

XMLPARSE (DOCUMENT 文字列値� PRESERVE WHITESPACE)
DOCUMENT

ã?“ã?®çœ?ç•¥ã?§ã??ã?ªã?„キーワードã?«ã‚ˆã‚Šã€?Derbyã?Œæ§‹æ–‡è§£æž?ã?§ã??ã‚‹XMLã?®å…¥åŠ›ã?®ã‚¿ã‚¤ãƒ—ã?Œè¨˜è¿°ã?•れã?¾ã?™ã€‚ Derbyã?Œæ§‹æ–‡è§£æž?å?¯èƒ½ã?ªæ–‡å­—列å¼?ã?¯ã€?æ•´å½¢å¼?ã?®XML文書を構æˆ?ã?™ã‚‹ã‚‚ã?®ã?«é™?られã?¾ã?™ã€‚ ã?“れã?¯ã€?Derbyã?ŒJAXP構文解æž?器を使ã?£ã?¦æ–‡å­—列を構文解æž?ã?—ã?¦ã?„ã‚‹ã?‹ã‚‰ã?§ã?™ã€‚ JAXP構文解æž?器ã?¯ã€?文字列値å¼?ã?Œæ•´å½¢å¼?ã?®XML文書を構æˆ?ã?™ã‚‹ã?“ã?¨ã‚’期待ã?—ã?¾ã?™ã€‚ ã‚‚ã?—文字列ã?Œæ•´å½¢å¼?ã?®XML文書を構æˆ?ã?—ã?ªã?„å ´å?ˆã€?JAXPã?¯ã‚¨ãƒ©ãƒ¼ã‚’挙ã?’ã?¾ã?™ã€‚ Derbyã?¯ã??ã?®ã‚¨ãƒ©ãƒ¼ã‚’補足ã?—ã?¦ã€?SQLExceptionã?¨ã?—ã?¦ã‚¨ãƒ©ãƒ¼ã‚’挙ã?’ã?ªã?Šã?—ã?¾ã?™ã€‚

文字列値�
CHARã€?VARCHARã€?LONGVARCHARã€?CLOBç­‰ã?®ã€?SQLã?®æ–‡å­—åž‹ã?¨è©•価ã?•れるã?‚らゆるå¼?ã‚’ç½®ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚文字列値å¼?ã?®å¼•æ•°ã?¯ãƒ‘ラメータã?§ã?‚ã?£ã?¦ã‚‚ã?‹ã?¾ã?„ã?¾ã?›ã‚“。パラメータã?«åž‹ã‚’ã?‚ã?Ÿã?ˆã‚‹ã?Ÿã‚?ã?«ã€?CAST関数を使ã?†å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚Derbyã?¯ã€?XML文書ã?¨ã?—ã?¦æ§‹æ–‡è§£æž?ã?™ã‚‹å‰?ã?«ã€?パラメータã?Œæ­£ã?—ã?„åž‹ã?§ã?‚ã‚‹ã?‹ã‚’検証ã?™ã‚‹å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚ ã‚‚ã?—パラメータã?ŒCAST関数ã?ªã?—ã?§æŒ‡å®šã?•れã?Ÿã‚Šã€?CAST関数ã?§æ–‡å­—ã?®ãƒ‡ãƒ¼ã‚¿åž‹ä»¥å¤–ã?®åž‹ã?Œä¸Žã?ˆã‚‰ã‚Œã?Ÿå ´å?ˆã€?Derbyã?¯ã‚¨ãƒ©ãƒ¼ã‚’挙ã?’ã?¾ã?™ã€‚
PRESERVE WHITESPACE
çœ?ç•¥ã?§ã??ã?ªã?„ã?“ã?®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã?¯ã€?Derbyã?Œé€£ç¶šã?—ã?ŸXMLã?®ç¯€ã?®é–“ã?«ã?‚る空白文字をã?©ã?®ã‚ˆã?†ã?«æ‰±ã?†ã?‹ã‚’記述ã?—ã?¾ã?™ã€‚ PRESERVE WHITESPACEキーワードã?ŒæŒ‡å®šã?•れるã?¨ã€?空白文字をã??ã?®ã?¾ã?¾ã?¨ã?™ã‚‹SQL/XMLã?®è¦?則ã?«ã??ã?£ã?¦ã€?Derbyã?¯ç©ºç™½æ–‡å­—ã‚’ã??ã?®ã?¾ã?¾ã?«ã?—ã?¾ã?™ã€‚

æ•´å½¢å¼?ã?®XML文書ã?«ã?¤ã?„ã?¦ã?¯ã€?次ã?®ä»•様をå?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。http://www.w3.org/TR/REC-xml/#sec-well-formed .

制約事項: SQL/XMLã?®æ¨™æº–ã?«æ‹ ã‚Œã?°ã€?XMLPARSE演算å­?ã?®å¼•æ•°ã?¯ãƒ?イナリã?®åˆ—ã?§ã‚‚å?¯èƒ½ã?§ã?™ã€‚ã?—ã?‹ã?—ã€?Derbyã?§XMLPARSE演算å­?ã?®å¼•æ•°ã?«ã?¨ã‚‹ã?“ã?¨ã?Œã?§ã??ã‚‹ã?®ã?¯æ–‡å­—列ã?®ã?¿ã?§ã?™ã€‚

例

次�文��x_table表�xcolXML列��純�XML文書を挿入����。:
INSERT INTO x_table VALUES 
    (1, 
    XMLPARSE(DOCUMENT '
        <roster>
          <student age="18">AB</student>
          <student age="23">BC</student>
          <student>NOAGE</student>
        </roster>'
      PRESERVE WHITESPACE)
    )
JDBCã?«ã‚ˆã‚Šã€?x_table表ã?®xcolXML列ã?«ã€?大ã??ã?ªXML文書を挿入ã?™ã‚‹ã?«ã?¯ã€?次ã?®æ–‡ã‚’書ã??ã?¾ã?™ã€‚
INSERT INTO x_table VALUES 
    (2, 
    XMLPARSE (DOCUMENT CAST (? AS CLOB) PRESERVE WHITESPACE)
    )
��文���setCharacterStream()メソッドや�型変���対照型��能�JDBC�他�setXXXメソッドを使���値を与�る必���り��。

利用上�覚書

Derbyã?®XML機能ã?Œå‹•作ã?™ã‚‹ã?Ÿã‚?ã?«ã?¯ã€?Apache Xercesã?®ã‚ˆã?†ã?ªJAXP構文解æž?器ã?Šã‚ˆã?³Apache Xalanã?ŒJavaã?®ã‚¯ãƒ©ã‚¹ãƒ‘スã?«è¨˜è¿°ã?•れã?¦ã?„ã‚‹å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚ã‚‚ã?—ã?©ã?¡ã‚‰ã?‹ã?Œæ¬ ã?‘ã?¦ã?„ã‚‹ã?¨ã€?XMLPARSE演算å­?を使ã?Šã?†ã?¨ã?—ã?Ÿã?¨ã??エラーã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚