Инструмент определения схемы XML не генерирует SchemaLocation - PullRequest
2 голосов
/ 05 июня 2009

Генерирует ли инструмент xsd.exe, поставляемый с Visual Studio, атрибут SchemaLocation (в xs: import) при генерации XSD из простых старых объектов C #?

Я обнаружил, что мои сгенерированные XSD недействительны, поскольку xs: import импортирует пространство имен и не предоставит относительное значение расположения схемы, запрашивая следующее

Импортированная схема для пространства имен «urn: company-event-namespace» не была разрешена.

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Как показано в этот ответ , вы можете добавить вручную добавить атрибут. Поскольку инструмент 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";
}
0 голосов
/ 05 июня 2009

Как вы обнаружили, он не генерирует этот атрибут. Это может быть связано с тем, что он не будет использовать этот атрибут, если атрибут присутствует в схеме, которую он читает.

...