Как добавить xsi schemalocation в корневой c # объект XmlSerializer
Я использую XmlSerializer для создания объекта, представляющего файл XML, и теперь я хочу добавить расположение схемы в корневой элемент моего файла XML. Я могу добавить пространства имен, как показано ниже
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
System.IO.FileStream fs = new FileStream(@"C:\test.xml", FileMode.Create);
TextWriter writer = new StreamWriter(fs, new UTF8Encoding());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("xy","http://www.w3.org/2005/08/addressing");
ns.Add("xlink","http://www.w3.org/1999/xlink");
serializer.Serialize(writer, myObject, ns);
Но как мне добавитьxsi:schemalocation
атрибут моего корневого элемента в моем коде c #. Пространство имен было добавлено с простымns.Add()
, Я хотел бы избежать возни с xsd.exe сгенерированного класса C #. Или мне нужно отредактировать вручную сгенерированный класс C # и добавить некоторый атрибут в корневой элемент моего XML?
РЕДАКТИРОВАТЬ: Я видел примеры, где мне нужно редактировать мой C # вручную, но должен быть способ сделать это в коде! Если мы можем добавить пространства имен к нашему корневому элементу, почему бы неМожно ли добавить схемы размещения?