Visual Studio 2012 unterstützt jetzt die Validierung von XML-Dokumenteninstanzen, die den in einem referenzierten Schema definierten key / keyref-Einschränkungen unterliegen.
Visual Studio gibt jedoch keine Fehler für das Schemadokument selbst aus, wenn dieses Schemadokument key / keyref falsch verwendet - unabhängig davon, ob ein Dokument das Schema erfüllt.
Insbesondere müssen key / keyref -Elemente, wie im Schema definiert, Namespaces in den Xpath-Anweisungen des Selektors entsprechend dem folgenden SO-Post verwenden:
Um zu zitieren:
Außerdem - das ist ein Fehler - Schlüsseleinschränkungen erkennen den Standard-Namespace nicht. Sie müssen jedem Teil des Xpath-Selektors immer das Präfix des Namens des Elements voranstellen, das Sie suchen. Wenn Sie kein Namespace-Präfix haben - zäh, müssen Sie eins hinzufügen. Dies ist eine Einschränkung des Standards.
Der folgende SO-Post bietet ein vollständiges Beispiel für ein Schema, das key / keyref, eine XML-Dokumentinstanz und einen manuellen C # -basierten Validierer verwendet. Das Schema und die XML-Dokumentinstanz werden in Visual Studio korrekt überprüft. Visual Studio generiert Fehler, wenn das Dokument die key / keyref-Einschränkungen des Schemas verletzt:
Die Funktionalität wird derzeit in VS2010 weder unterstützt noch in VS2012 (gemäß technischem Support von MS).
Vielleicht werden sie es in zukünftigen Versionen unterstützen ...
Ich habe nach der Antwort gesucht und konnte keine finden:
Danke!
UPDATE: Bitte beachten Sie, dass es in der Frage nicht darum geht, wie ein XML mit einer XSD-Datei validiert wird. Ich frage speziell nach der key / keyref intellisense / was auch immer Unterstützung in Visual Studio, die anscheinend überhaupt nicht hinzugefügt wird.
Ich habe es gerade in VS 2013 und VS 2015 probiert. Sie haben key / refkey jetzt validiert. Es wurden jedoch Warnungen auf der übergeordneten Ebene angezeigt.
Aber wie @antiduh sagte, überprüfen sie immer noch keine xsd-Datei. Sie müssen also wirklich sicherstellen, dass der Schlüssel / refkey in xsd korrekt ist .
Ich brauchte meine Stunden, um ein einfaches Beispiel herauszufinden. Selbst das Beispiel auf MSDN funktioniert nicht. Ich musste es ein wenig ändern.
Stellen Sie zuerst sicher, dass Sie wissen, wie Sie Visual Studio validieren lassen XML gegen ein xsd deiner Wahl .
Verwenden Sie dann das folgende Beispiel xsd und xml für die Schlüssel / refkey-Validierung. Beachten Sie, dass die Warnung auf dem Schließen des Stammelements steht und nicht auf dem Element, das die Schlüssel / Ref-Regel verletzt.
Die xsd-Datei sieht folgendermaßen aus:
%Vor%Und die XML-Datei sieht so aus:
%Vor%