@Test public void testXMLTable() throws Exception { String sql = "SELECT * from xmltable(xmlnamespaces(no default), '/' columns x for ordinality, y date default {d'2000-01-01'} path '@date') as x"; //$NON-NLS-1$ Query query = new Query(); query.setSelect(new Select(Arrays.asList(new MultipleElementSymbol()))); XMLTable xt = new XMLTable(); xt.setName("x"); xt.setNamespaces(new XMLNamespaces(Arrays.asList(new XMLNamespaces.NamespaceItem()))); xt.setXquery("/"); List<XMLTable.XMLColumn> columns = new ArrayList<XMLTable.XMLColumn>(); columns.add(new XMLTable.XMLColumn("x")); columns.add(new XMLTable.XMLColumn("y", "date", "@date", new Constant(Date.valueOf("2000-01-01")))); xt.setColumns(columns); query.setFrom(new From(Arrays.asList(xt))); helpTest(sql, "SELECT * FROM XMLTABLE(XMLNAMESPACES(NO DEFAULT), '/' COLUMNS x FOR ORDINALITY, y date DEFAULT {d'2000-01-01'} PATH '@date') AS x", query); }
@Test public void testXmlNamespaces() throws Exception { XMLForest f = new XMLForest(Arrays.asList(new DerivedColumn("table", new ElementSymbol("a")))); f.setNamespaces(new XMLNamespaces(Arrays.asList(new XMLNamespaces.NamespaceItem(), new XMLNamespaces.NamespaceItem("http://foo", "x")))); helpTestExpression("xmlforest(xmlnamespaces(no default, 'http://foo' as x), a as \"table\")", "XMLFOREST(XMLNAMESPACES(NO DEFAULT, 'http://foo' AS x), a AS \"table\")", f); }
final public XMLNamespaces.NamespaceItem namespaceItem() throws ParseException { String uri = null; String prefix = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STRINGVAL: uri = stringVal(); jj_consume_token(AS); prefix = id(null); {if (true) return new XMLNamespaces.NamespaceItem(uri, prefix);} break; case NO: jj_consume_token(NO); jj_consume_token(DEFAULT_KEYWORD); {if (true) return new XMLNamespaces.NamespaceItem();} break; case DEFAULT_KEYWORD: jj_consume_token(DEFAULT_KEYWORD); uri = stringVal(); {if (true) return new XMLNamespaces.NamespaceItem(uri);} break; default: jj_la1[318] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }
final public XMLNamespaces.NamespaceItem namespaceItem() throws ParseException { String uri = null; String prefix = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STRINGVAL: uri = stringVal(); jj_consume_token(AS); prefix = id(null); {if (true) return new XMLNamespaces.NamespaceItem(uri, prefix);} break; case NO: jj_consume_token(NO); jj_consume_token(DEFAULT_KEYWORD); {if (true) return new XMLNamespaces.NamespaceItem();} break; case DEFAULT_KEYWORD: jj_consume_token(DEFAULT_KEYWORD); uri = stringVal(); {if (true) return new XMLNamespaces.NamespaceItem(uri);} break; default: jj_la1[305] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }
final public XMLNamespaces.NamespaceItem namespaceItem() throws ParseException { String uri = null; String prefix = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STRINGVAL: uri = stringVal(); jj_consume_token(AS); prefix = id(null); {if (true) return new XMLNamespaces.NamespaceItem(uri, prefix);} break; case NO: jj_consume_token(NO); jj_consume_token(DEFAULT_KEYWORD); {if (true) return new XMLNamespaces.NamespaceItem();} break; case DEFAULT_KEYWORD: jj_consume_token(DEFAULT_KEYWORD); uri = stringVal(); {if (true) return new XMLNamespaces.NamespaceItem(uri);} break; default: jj_la1[318] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }