Здравствуйте!
Необходимо сформировать заголовок файла определенным образом.
Работаю в VS2003 — VB.Net.
Необходимо (
требуемый вариант):
<?xml version="1.0" encoding="windows-1251"?>
<DECLAR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schemaName.XSD">
<DECLARHEAD>
</DECLARHEAD></DECLAR>
Есть схема данных, при помощи утилиты xsd.exe создал класс.
Получилось нечто работающее:
<System.Xml.Serialization.XmlRootAttribute("DECLAR", [Namespace]:="", IsNullable:=False)> _
Public Class DeclarContent
<System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)> _
Public DECLARHEAD As DHead
End Class
Public Class DHead
<System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)> _
Public TIN As String
' etc.................
End Class
После примененния XmlSerializer, был сформирован файл следующего вида:
<?xml version="1.0" encoding="windows-1251"?>
<DECLAR xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<DECLARHEAD>
</DECLARHEAD></DECLAR>
Выходит , что Определение атрибутов DECLAR я никак не могу контролировать.
Посоветуйте пожалуйста каким образом можно достичь желаемого!
Грубый метод замены текста в файле держу прозапас, хотелось бы как-нибудь изящнее решить проблему.
Спасибо!
Здравствуйте, voladu, Вы писали:
V>Выходит , что Определение атрибутов DECLAR я никак не могу контролировать.
V>Посоветуйте пожалуйста каким образом можно достичь желаемого!
V>
V>Грубый метод замены текста в файле держу прозапас, хотелось бы как-нибудь изящнее решить проблему.
using System;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace ConsoleApplication2
{
internal class Program
{
private static void Main()
{
XmlSerializer serializer = new XmlSerializer(typeof(DeclarRoot));
serializer.Serialize(Console.Out, new DeclarRoot());
Console.ReadLine();
}
}
}
[XmlRoot("DECLAR", Namespace = "", IsNullable = false)]
public class DeclarRoot
{
[XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public string NoNamespaceSchemaLocation = "schemaName.XSD";
[XmlElement("DECLARHEAD", Form = XmlSchemaForm.Unqualified)]
public DeclarHead Head = new DeclarHead();
}
public class DeclarHead {}