2009-06-05 8 views
2

Generiert das mit Visual Studio gelieferte Tool xsd.exe das SchemaLocation-Attribut (im xs: import) beim Generieren von XSDs aus einfachen alten C# -Objekten?XML-Schemadefinitionstool generiert keine SchemaLocation

Ich finde, dass meine XSDs dass, weil die xs erzeugt wurden nicht gültig ist: import einen Namespace importieren und nicht liefert den relativen Wert schema auffordert, die unter

importiertes Schema für Namespace ‚urn: unternehmens- Ereignis-Namespace 'wurde nicht aufgelöst.

Antwort

0

Wie Sie festgestellt haben, wird dieses Attribut nicht generiert. Dies hat möglicherweise damit zu tun, dass dieses Attribut nicht verwendet würde, wenn das Attribut in einem Schema vorhanden wäre, das gerade gelesen wurde.

1

Wie in this anwser gezeigt, können Sie manuell ein Attribut hinzufügen. Da das Tool xsd eine partielle Klasse generiert, können Sie dieses Attribut in einer separaten Datei hinzufügen, sodass Sie eine generierte Datei nicht ändern müssen.

public partial class Gpx 
{ 
    [XmlAttribute("schemaLocation", Namespace = XmlSchema.InstanceNamespace)] 
    public string xsiSchemaLocation = "http://www.topografix.com/GPX/1/1 " + 
           "http://www.topografix.com/GPX/1/1/gpx.xsd"; 
}