@Nullable
  public static XPath2Type fromName(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);
  }
@Nullable
  public static XPath2Type fromName(QName name)