public static function resolveQName($qname): SchemaCurie
    {
        if (!$qname instanceof SchemaQName) {
            $qname = SchemaQName::fromString((string)$qname);
        }

        $key = $qname->toString();

        if (isset(self::$resolvedQnames[$key])) {
            return self::$resolvedQnames[$key];
        }

        $qvendor = $qname->getVendor();
        $qmessage = $qname->getMessage();

        foreach (self::$curies as $curie => $id) {
            list($vendor, $package, $category, $message) = explode(':', $curie);
            if ($qvendor === $vendor && $qmessage === $message) {
                return self::$resolvedQnames[$key] = SchemaCurie::fromString($vendor . ':' . $package . ':' . $category . ':' . $message);
            }
        }

        throw new NoMessageForQName($qname);
    }
public static function resolveQName($qname): SchemaCurie
    {
        if (!$qname instanceof SchemaQName) {
            $qname = SchemaQName::fromString((string)$qname);
        }

        $key = $qname->toString();

        if (isset(self::$resolvedQnames[$key])) {
            return self::$resolvedQnames[$key];
        }

        $qvendor = $qname->getVendor();
        $qmessage = $qname->getMessage();

        foreach (self::$curies as $curie => $id) {
            list($vendor, $package, $category, $message) = explode(':', $curie);
            if ($qvendor === $vendor && $qmessage === $message) {
                return self::$resolvedQnames[$key] = SchemaCurie::fromString($vendor . ':' . $package . ':' . $category . ':' . $message);
            }
        }

        throw new NoMessageForQName($qname);
    }
@param SchemaQName|string $qname

@return SchemaCurie

@throws NoMessageForQName