Cómo agregar la ubicación de esquemas xsi al objeto raíz c # XmlSerializer
Estoy usando XmlSerializer para crear un objeto que representa un archivo XML y ahora quiero agregar una ubicación de esquema a la ubicación de mi archivo xml. Puedo agregar espacios de nombres como los siguientes
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);
Pero, ¿cómo agrego unxsi:schemalocation
atribuir a mi elemento raíz dentro de mi código c #. Se agregó el espacio de nombres con un simplens.Add()
. Me gustaría evitar perder el tiempo con la clase c # generada con xsd.exe. ¿O tengo que editar manualmente la clase c # generada y agregar algún atributo al elemento raíz de mi xml?
EDITAR: He visto ejemplos en los que necesito editar mi c # manualmente, ¡pero debe haber una forma de hacerlo en código! Si somos capaces de agregar espacios de nombres a nuestro elemento raíz, ¿por qué no sería posible agregar esquemas de ubicación?