XPath2Type (QName name) { final String local = name.getLocalPart(); if (local.endsWith("*")) { return XPath2SequenceType.create(lookupSequenceType(name, local), XPath2SequenceType.Cardinality.ZERO_OR_MORE); } else if (local.endsWith("+")) { return XPath2SequenceType.create(lookupSequenceType(name, local), XPath2SequenceType.Cardinality.ONE_OR_MORE); } else if (local.endsWith("?")) { return XPath2SequenceType.create(lookupSequenceType(name, local), XPath2SequenceType.Cardinality.OPTIONAL); } return ourMap.get(name); }