Frage

Ich weiß, dass ich das schon getan haben, aber es ist heute nicht arbeiten, noch kann ich nirgends finden, das erklärt, wie es zu tun. Es könnte mein Mangel an Schlaf, aber ich vermute, Gremlins sein.

ich ein XML-Dokument haben und ein Verzeichnis voller XSD ist, die es zu definieren. Wie stelle ich das Visual IDE mich Validierungsfehler zu informieren, und dann eine intellisense Liste der gültigen Tags und Attribute in einem bestimmten Kontext zur Verfügung stellen?

Was habe ich versucht:

  • Ich habe die XSD ist für das Projekt mit dem XML-Dokument hinzugefügt.
  • Ich habe die XSD die in der XML-Schema-Liste hinzugefügt (unter XML / Schemen ... Menüpunkt).
  • Ich habe sogar das schema und noNamespaceSchemaLocation Attribute zum XML-Dokument enthalten.

noch Visual Studio gibt keinen nützlichen Debugging oder Informationen bearbeiten. Ich habe versucht, beide 2010 und 2008 (ich habe es getan, bevor im Jahr 2008 dachte ich)

Update: Das hatte ich einen anderen Entwickler versuchen, es scheitert auch für ihn. Er weiß, dass er es mit anderen XML-Dokumenten getan hat und hatte es funktionieren. Ich habe dann Oxygen XML Editor heruntergeladen und es hat gut funktioniert auf der gleichen XML und XSD-Dateien, so dass die Dateien scheinen in Ordnung zu sein (oder Sauerstoff wird tolerante / flexibel...)

War es hilfreich?

Lösung

Sie werden das XML-Dokument in Visual Studio mit der XSD-Datei verknüpfen müssen Sie haben.

  1. Sie sollten so etwas in Ihrem Fenster Eigenschaften des XML-Dokuments finden Sie unter:

     XML-Eigenschaften loading= Schema ">

  2. In der XML-Schema-Set-Editor (öffnet, wenn Sie auf die (...) Auslassungszeichen in der „Schemen“ Textbox im Eigenschaften-Fenster) Sie müssen sicherstellen, Sie haben Ihr Schema vorhanden. Stellen Sie außerdem sicher, dass die Use Spalte für dieses Schema aktiviert ist - wenn nicht, darauf klicken - Sie werden eine Dropdown-Liste der Optionen zu erhalten, wählen Sie die Use einer mit dem grünen Häkchen:

     XML-Schema-Selector

  3. Stellen Sie sicher, dass Visual Studio Fehlerliste Fenster sichtbar ist (Menü Ansicht> Fehlerliste). Dies zeigt alle Unstimmigkeiten zwischen XML und XSD-Schema-Definitionen.

  4. Wenn alle, dass an seinem Platz sind, sollte der Visual Studio-XML-Editor markiert Probleme mit Ihrem XML im Editor blau squigglies mit:

     Fehler, Beispiel

Andere Tipps

Sie müssen nicht manuell die Dateien in Visual Studio verbinden - es wird automatisch eine XML-Datei in eine XSD-Datei übereinstimmen, wenn Sie sie beide geöffnet haben, und Sie haben Ihren Namensraum korrekt definiert.

den Namensraum zu definieren:

In dem Stammelement der XML-Datei:

<Data xmlns='http://yourdomain.com/yourschema.xsd'>
    ...
</Data>

In der Schema-Elemente der XSD-Datei:

<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://yourdomain.com/yourschema.xsd"
    xmlns:this="http://yourdomain.com/yourschema.xsd"
    elementFormDefault="qualified">
    ...
</xs:schema>

Ein Hinweis auf Typen in Ihrem Schema verwenden, wenn Sie einen target haben

Da Sie eine targetNamespace in Ihrem Schema angeben, alle Verweise auf Typen im Schema definiert werden müssen mit einem Namespace vorangestellt werden (weshalb wir das xmlns:this Attribut in dem obigen <xs:schema /> Elemente hinzugefügt).

<!-- Define the type as normal -->
<xs:complexType name="Row">
    <xs:sequence>
        <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
        <xs:element name="Value" type="xs:float" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
</xs:complexType>
<!-- Use the type (note the "this:" prefix) -->
<xs:element name="Row" type="this:Row" minOccurs="0" maxOccurs="unbounded" />

Ein weiterer Punkt des Scheiterns ist hier Windows 7 „blockiert“ Schema-Dateien ... Rechtsklick auf die XSD-Datei auf der Festplatte, Eigenschaften> Allgemein und wenn es blockiert ist, erhalten Sie eine „Nicht mehr blocken“ Taste haben. Dies wurde meine XML-Validierung verursacht in VS2012 zum Scheitern verurteilt.

Hat Ihr XSD ein Attribut "targetNamespace" /schema/@targetNamespace enthalten, die auf den Namespace ähnelt Sie in der XML-Referenzierung werden?

Beispiele:

XSD :

<xs:schema .... targetNamespace="Datafile.xsd" ... >

XML :

<data xmlns="Datafile.xsd" >...</data>

Siehe auch: XML / XSD Intellisense nicht in Visual Arbeits Studio 2010

Ich hatte das gleiche Problem, aber VS wurde Referenzierung mein Schema schon richtig. Stellt sich heraus, die Datei wurde ich zu bestätigen versucht, nicht eine ‚xml‘ Dateierweiterung haben. Hinzugefügt .xml bis zum Ende meines Dateinamen und die Validierung begonnen zu arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top