2

Visual Studio で提供される xsd.exe ツールは、プレーンな古い C# オブジェクトから XSD を生成するときに (xs:import で) SchemaLocation 属性を生成しますか?

xs:import が名前空間をインポートし、以下のプロンプトを表示する相対的な schemalocation 値を提供しないため、生成された XSD が無効であることがわかりました。

名前空間 'urn:company-event-namespace' のインポートされたスキーマは解決されませんでした。

4

2 に答える 2

1

この anwserに示されているように、属性を手動で追加できます。xsd ツールは部分クラスを生成するため、この属性を別のファイルに追加できるため、生成されたファイルを変更する必要はありません。

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";
}
于 2011-08-19T13:44:29.120 に答える
0

お気づきのとおり、その属性は生成されません。これは、属性が読み取っているスキーマに存在する場合、その属性を使用しないという事実に関係している可能性があります。

于 2009-06-05T13:57:15.037 に答える