& XML Data Store Part 3 Feature*1 AKIMOTO, Shougo i i i i i i inter 52 XML Magazine 04
i i i i i i i i P a r t 3 i i i i i XML Magazine 04 53
& XML Data Store Feature*1 i i inter i inter i inter inter inter inter inter CREATE TABLE doc ( num NUMBER(10), text VARCHAR2(100) ); INSERT INTO doc VALUES ( 1, '< >XML Magazine 4</ >< > < ></ >< >10</ > </ ><></>'); INSERT INTO doc VALUES ( 2,'< ></ >< > < > </ >< >28</ > </ ><></>'); commit; iinter 54 XML Magazine 04
i inter begin ctx_ddl.create_preference('my_lexer', 'JAPANESE_VGRAM_LEXER'); ctx_ddl.create_section_group('xml_group', 'XML_SECTION_GROUP'); end; i begin ctx_ddl.add_zone_section('xml_group', '', ''); ctx_ddl.add_zone_section('xml_group', ' ', ' '); ctx_ddl.add_zone_section('xml_group', ' ', ' '); ctx_ddl.add_zone_section('xml_group', ' ', ' '); ctx_ddl.add_zone_section('xml_group', '', ''); end; CREATE INDEX doc_idx ON doc(text) indextype is ctxsys.context parameters( 'lexer my_lexer section group xml_group'); SQL> SELECT count(*) FROM doc WHERE CONTAINS(text, ' ') > 0; COUNT(*) ---------- 2 SQL> SELECT count(*) FROM doc WHERE CONTAINS(text, ' ') > 0; COUNT(*) ---------- 1 i i P a r t 3 XML Magazine 04 55
& XML Data Store class XMLQueryDB { public static void main(string argv) { Feature*1 i inter < > < ></ > <></> </ > i i create table ( varchar2(20),, varchar2(20) ); insert into values ('XML Magazine 4', T('', 10), ''); commit; import oracle.jdbc.driver.*; import oracle.xml.sql.query.oraclexmlquery; import java.lang.*; import java.sql.*; try { DriverManager.registerDriver( new oracle.jdbc.driver.oracledriver()); Connection conn =DriverManager.getConnection( "jdbc:oracle:thin:@<server>:<port>:<sid>", "scott", "tiger"); OracleXMLQuery qry = new OracleXMLQuery(conn, "select * from "); qry.setencoding("shift_jis"); // XML qry.setrowsettag("");// ROWSET // qry.setrowtag(" "); // ROW qry.setrowidattrname(""); // ROW ID // // XML String str = qry.getxmlstring(); System.out.println(" XML \n" +str); qry.close(); } catch(sqlexception e) { System.out.println(e.toString()); } } } <?xml version = '1.0' encoding = 'Shift_JIS'?> <> ROWSET < > ROW < >XML4</ > < > < ></ > < >10</ > </ > <></> </ > </> 56 XML Magazine 04
<?xml version = '1.0' encoding = 'Shift_JIS'?> <> < > < ></ > < > < > </ > < >28</ > </ > <></> </ > < > < >XML Magazine 4</ > < > < > </ > < >28</ > </ > <></> </ > </> import oracle.jdbc.driver.*; import oracle.xml.sql.dml.oraclexmlsave; import java.lang.*; import java.sql.*; class XMLWriteDB { public static void main(string argv) { try { // XML String filename = "doc.xml"; DriverManager.registerDriver( new oracle.jdbc.driver.oracledriver()); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@<server>:<port>:<sid>", "scott", "tiger"); // XMLfileName // OracleXMLSave save = new OracleXMLSave(conn, " "); save.setrowtag(" "); ROW int rowcount = save.insertxml(save.geturl(filename)); System.out.println(rowCount + ""); conn.close(); } catch(sqlexception e) { System.out.println(e.toString()); } } } 2 i P a r t 3 XML Magazine 04 57
& XML Data Store i Feature*1 58 XML Magazine 04
<?xml version="1.0" encoding="shift_jis"?> i-mode <xsl:for-each select="rowset/row"> <table width="100%"><tr><td bgcolor="#cccccc"> <b><xsl:value-of select=""/> (<xsl:value-of select="deptno"/>)</b> </td></tr></table> <xsql:query connection="demo" xmlns:xsql="urn:oracle-xsql" null-indicator="yes" > SELECT DEPTNO, initcap(dname) AS, CURSOR(SELECT EMPNO AS, initcap(ename) AS FROM EMP WHERE DEPTNO = CURR.DEPTNO) AS EMP FROM DEPT CURR </xsql:query></xsql:query> i i i inter i <table border="1" width="100%"> <tr><th></th><th></th></tr> <xsl:for-each select="emp/emp_row"> <tr> <td align="center"> <xsl:element name="a"> <xsl:attribute name="href">emp.xsql?p_empno= <xsl:value-of select=""/> </xsl:attribute> <xsl:value-of select=""/> </xsl:element> </td> <td align="center"> <xsl:value-of select=""/></td> </tr> </xsl:for-each> </table> <xsl:for-each select="rowset/row"> <ul> <b><xsl:value-of select=""/> (<xsl:value-of select="deptno"/>)</b> <br/> <xsl:for-each select="emp/emp_row"> <li> <xsl:element name="a"> <xsl:attribute name="href"> emp.xsql?p_empno= <xsl:value-of select=""/> </xsl:attribute> <xsl:value-of select=""/> </xsl:element> (<xsl:value-of select=""/>) </li> </xsl:for-each> </ul> </xsl:for-each> </xsl:stylesheet> P a r t 3 XML Magazine 04 59
F e a t u r e 0 2 XML Standards 86 XML Magazine 04
87 XML Magazine 04 XML Standards
F e a t u r e 0 2 XML Standards 92 XML Magazine 04
XML Standards 93 XML Magazine 04
F e a t u r e 0 2 94 XML Magazine 04
XML Standards 95 XML Magazine 04
F e a t u r e 0 2 96 XML Magazine 04
XML Standards XML Magazine 04 97
F e a t u r e 0 2 q w e r q 98 XML Magazine 04
XML Standards w e r XML Magazine 04 99