XPathType (String type, XPath2SequenceType.Cardinality c) { if ("none".equals(type)) { return XPathType.UNKNOWN; } XPathType r = null; if ("numeric".equals(type)) { r = XPath2Type.NUMERIC; } else if (type.startsWith("xs:")) { final String base = type.substring(3); r = XPath2Type.fromName(new QName(XPath2Type.XMLSCHEMA_NS, base)); if (r == null) { r = XPathType.fromString(base); } } else { if (type.endsWith("()")) { r = XPath2Type.fromName(new QName("", type)); } } if (r != null) { if (c != null) { r = XPath2SequenceType.create(r, c); } return r; } return XPathType.fromString(type); }