code: public static QualifiedName valueOf(String value, NamespaceContext ctx) {
          if (value == null) {
              throw new IllegalArgumentException("value must not be null");
          }
          int colon = value.indexOf(':');
          int closingBrace = value.indexOf('}');
          boolean qnameToStringStyle = value.startsWith("{") && closingBrace > 0;
          if (!qnameToStringStyle && colon < 0) {
              return new QualifiedName(value); // null namespace
          }
          return qnameToStringStyle ? parseQNameToString(value, closingBrace)
              : parsePrefixFormat(value, colon, ctx);
      }
docs: Parses strings of the form "{NS-URI}LOCAL-NAME" or "prefix:localName" as QualifiedNames.
  
  <p>When using the prefix-version the prefix must be defined
  inside the NamespaceContext given as argument.</p>