private Evaluator.NameValuePair<String>[] namespaces(XMLNamespaces namespaces) { if (namespaces == null) { return null; } List<NamespaceItem> args = namespaces.getNamespaceItems(); Evaluator.NameValuePair<String>[] nameValuePairs = new Evaluator.NameValuePair[args.size()]; for(int i=0; i < args.size(); i++) { NamespaceItem item = args.get(i); nameValuePairs[i] = new Evaluator.NameValuePair<String>(item.getPrefix(), item.getUri()); } return nameValuePairs; }
if (namespaces != null) { for (NamespaceItem item : namespaces.getNamespaceItems()) { if (item.getPrefix() == null) { if (item.getUri() == null) { context.setDefaultElementNamespace(EMPTY_STRING); ic.setDefaultElementNamespace(EMPTY_STRING); } else { context.setDefaultElementNamespace(item.getUri()); ic.setDefaultElementNamespace(item.getUri()); saxonXQueryExpression.namespaceMap.put(EMPTY_STRING, item.getUri()); context.declareNamespace(item.getPrefix(), item.getUri()); ic.declareNamespace(item.getPrefix(), item.getUri()); saxonXQueryExpression.namespaceMap.put(item.getPrefix(), item.getUri());
if (namespaces != null) { for (NamespaceItem item : namespaces.getNamespaceItems()) { if (item.getPrefix() == null) { if (item.getUri() == null) { context.setDefaultElementNamespace(EMPTY_STRING); ic.setDefaultElementNamespace(EMPTY_STRING); } else { context.setDefaultElementNamespace(item.getUri()); ic.setDefaultElementNamespace(item.getUri()); saxonXQueryExpression.namespaceMap.put(EMPTY_STRING, item.getUri()); context.declareNamespace(item.getPrefix(), item.getUri()); ic.declareNamespace(item.getPrefix(), item.getUri()); saxonXQueryExpression.namespaceMap.put(item.getPrefix(), item.getUri());
if (namespaces != null) { for (NamespaceItem item : namespaces.getNamespaceItems()) { if (item.getPrefix() == null) { if (item.getUri() == null) { context.setDefaultElementNamespace(EMPTY_STRING); ic.setDefaultElementNamespace(EMPTY_STRING); } else { context.setDefaultElementNamespace(item.getUri()); ic.setDefaultElementNamespace(item.getUri()); namespaceMap.put(EMPTY_STRING, item.getUri()); context.declareNamespace(item.getPrefix(), item.getUri()); ic.declareNamespace(item.getPrefix(), item.getUri()); namespaceMap.put(item.getPrefix(), item.getUri());
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"); }
@Override public void visit( XMLNamespaces obj ) { append(XMLNAMESPACES); append("("); //$NON-NLS-1$ for (Iterator<NamespaceItem> items = obj.getNamespaceItems().iterator(); items.hasNext();) { NamespaceItem item = items.next(); if (item.getPrefix() == null) { if (item.getUri() == null) { append("NO DEFAULT"); //$NON-NLS-1$ } else { append("DEFAULT "); //$NON-NLS-1$ visitNode(new Constant(item.getUri())); } } else { visitNode(new Constant(item.getUri())); append(" AS "); //$NON-NLS-1$ outputDisplayName(item.getPrefix()); } if (items.hasNext()) { append(", "); //$NON-NLS-1$ } } append(")"); //$NON-NLS-1$ }
@Override public void visit( XMLNamespaces obj ) { append(XMLNAMESPACES); append("("); //$NON-NLS-1$ for (Iterator<NamespaceItem> items = obj.getNamespaceItems().iterator(); items.hasNext();) { NamespaceItem item = items.next(); if (item.getPrefix() == null) { if (item.getUri() == null) { append("NO DEFAULT"); //$NON-NLS-1$ } else { append("DEFAULT "); //$NON-NLS-1$ visitNode(new Constant(item.getUri())); } } else { visitNode(new Constant(item.getUri())); append(" AS "); //$NON-NLS-1$ outputDisplayName(item.getPrefix()); } if (items.hasNext()) { append(", "); //$NON-NLS-1$ } } append(")"); //$NON-NLS-1$ }
@Override public void visit( XMLNamespaces obj ) { append(XMLNAMESPACES); append("("); //$NON-NLS-1$ for (Iterator<NamespaceItem> items = obj.getNamespaceItems().iterator(); items.hasNext();) { NamespaceItem item = items.next(); if (item.getPrefix() == null) { if (item.getUri() == null) { append("NO DEFAULT"); //$NON-NLS-1$ } else { append("DEFAULT "); //$NON-NLS-1$ visitNode(new Constant(item.getUri())); } } else { visitNode(new Constant(item.getUri())); append(" AS "); //$NON-NLS-1$ outputDisplayName(item.getPrefix()); } if (items.hasNext()) { append(", "); //$NON-NLS-1$ } } append(")"); //$NON-NLS-1$ }
@Override public void visit(XMLNamespaces obj) { boolean hasDefault = false; for (XMLNamespaces.NamespaceItem item : obj.getNamespaceItems()) { if (item.getPrefix() != null) { if (item.getPrefix().equals("xml") || item.getPrefix().equals("xmlns")) { //$NON-NLS-1$ //$NON-NLS-2$ handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_reserved"), obj); //$NON-NLS-1$ } else if (!XMLSystemFunctions.isValidNCName(item.getPrefix())) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_invalid", item.getPrefix()), obj); //$NON-NLS-1$ } if (item.getUri().length() == 0) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_null_uri"), obj); //$NON-NLS-1$ } continue; } if (hasDefault) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces"), obj); //$NON-NLS-1$ break; } hasDefault = true; } }
@Override public void visit(XMLNamespaces obj) { boolean hasDefault = false; for (XMLNamespaces.NamespaceItem item : obj.getNamespaceItems()) { if (item.getPrefix() != null) { if (item.getPrefix().equals("xml") || item.getPrefix().equals("xmlns")) { //$NON-NLS-1$ //$NON-NLS-2$ handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_reserved"), obj); //$NON-NLS-1$ } else if (!Name11Checker.getInstance().isValidNCName(item.getPrefix())) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_invalid", item.getPrefix()), obj); //$NON-NLS-1$ } if (item.getUri().length() == 0) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_null_uri"), obj); //$NON-NLS-1$ } continue; } if (hasDefault) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces"), obj); //$NON-NLS-1$ break; } hasDefault = true; } }
@Override public void visit(XMLNamespaces obj) { boolean hasDefault = false; for (XMLNamespaces.NamespaceItem item : obj.getNamespaceItems()) { if (item.getPrefix() != null) { if (item.getPrefix().equals("xml") || item.getPrefix().equals("xmlns")) { //$NON-NLS-1$ //$NON-NLS-2$ handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_reserved"), obj); //$NON-NLS-1$ } else if (!XMLSystemFunctions.isValidNCName(item.getPrefix())) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_invalid", item.getPrefix()), obj); //$NON-NLS-1$ } if (item.getUri().length() == 0) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces_null_uri"), obj); //$NON-NLS-1$ } continue; } if (hasDefault) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.xml_namespaces"), obj); //$NON-NLS-1$ break; } hasDefault = true; } }
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"); }
@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); }
private Evaluator.NameValuePair<String>[] namespaces(XMLNamespaces namespaces) { if (namespaces == null) { return null; } List<NamespaceItem> args = namespaces.getNamespaceItems(); Evaluator.NameValuePair<String>[] nameValuePairs = new Evaluator.NameValuePair[args.size()]; for(int i=0; i < args.size(); i++) { NamespaceItem item = args.get(i); nameValuePairs[i] = new Evaluator.NameValuePair<String>(item.getPrefix(), item.getUri()); } return nameValuePairs; }
@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); }
private Evaluator.NameValuePair<String>[] namespaces(XMLNamespaces namespaces) { if (namespaces == null) { return null; } List<NamespaceItem> args = namespaces.getNamespaceItems(); Evaluator.NameValuePair<String>[] nameValuePairs = new Evaluator.NameValuePair[args.size()]; for(int i=0; i < args.size(); i++) { NamespaceItem item = args.get(i); nameValuePairs[i] = new Evaluator.NameValuePair<String>(item.getPrefix(), item.getUri()); } return nameValuePairs; }