Ich weiß, dass ich das schon einmal gemacht habe, aber es funktioniert heute nicht und ich kann auch nirgendwo etwas finden, das erklärt, wie es geht. Es könnte mein Schlafmangel sein, aber ich vermute Gremlins.
Ich habe ein XML-Dokument und ein Verzeichnis voller XSDs, die es definieren. Wie richte ich die visuelle IDE ein, um mich über Validierungsfehler zu informieren und dann eine Intellisense-Liste gültiger Tags und Attribute in einem bestimmten Kontext bereitzustellen?
Was ich versucht habe:
- Ich habe die XSDs mit dem XML-Dokument zum Projekt hinzugefügt.
- Ich habe die XSDs zur Liste der XML-Schemas hinzugefügt (unter dem Menüpunkt XML / Schemas ...).
- Ich habe sogar die Attribute schemaLocation und noNamespaceSchemaLocation in das XML-Dokument aufgenommen.
Visual Studio gibt immer noch keine nützlichen Debugging- oder Bearbeitungsinformationen auf. Ich habe es sowohl 2010 als auch 2008 versucht (ich habe es schon 2008 gemacht, dachte ich)
Update: Ich habe dies von einem anderen Entwickler versuchen lassen und es ist auch für ihn fehlgeschlagen. Er weiß, dass er es mit anderen XML-Dokumenten gemacht hat und es funktioniert hat. Ich habe dann den Oxygen XML-Editor heruntergeladen und er hat bei denselben XML- und XSD-Dateien einwandfrei funktioniert, sodass die Dateien in Ordnung zu sein scheinen (oder Oxygen verzeihender / flexibler ist.)
quelle
Sie müssen die Dateien in Visual Studio nicht manuell zuordnen. Eine XML-Datei wird automatisch mit einer XSD-Datei abgeglichen, wenn beide geöffnet sind und Ihr Namespace korrekt definiert ist.
So definieren Sie den Namespace:
Im Stammelement der XML-Datei:
Im Schemaelement der XSD-Datei:
Ein Hinweis zur Verwendung von Typen in Ihrem Schema, wenn Sie einen targetNamespace haben
Da Sie
targetNamespace
in Ihrem Schema ein angeben, muss allen Verweisen auf im Schema definierte Typen ein Namespace vorangestellt werden (weshalb wir dasxmlns:this
Attribut im obigen<xs:schema />
Element hinzugefügt haben ).quelle
Ein weiterer Fehlerpunkt ist, dass Windows 7 Schemadateien "blockiert". Klicken Sie mit der rechten Maustaste auf die xsd-Datei auf der Festplatte, Eigenschaften> Allgemein. Wenn sie blockiert ist, wird die Schaltfläche "Entsperren" angezeigt. Dies führte dazu, dass meine XML-Validierung in VS2012 fehlschlug.
quelle
Enthält Ihre xsd ein Attribut
"targetNamespace"
/schema/@targetNamespace
, das dem Namespace ähnelt, auf den Sie in der XML verweisen?Beispiele:
XSD :
XML :
Siehe auch: XML / XSD Intellisense funktioniert in Visual Studio 2010 nicht
quelle
Ich hatte das gleiche Problem, aber VS hat mein Schema bereits korrekt referenziert. Es stellte sich heraus, dass die Datei, die ich überprüfen wollte, keine XML-Dateierweiterung hatte. Am Ende meines Dateinamens wurde .xml hinzugefügt, und die Validierung begann zu funktionieren.
quelle