Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Книги по теме

Искать:
в:
Порядок:

Исходник

Автор:

OldSchool

 
Название:

Генерация XML схемы (XSD) описывающей "произвольный" класс .NET

Дата: 25 August 2005
Описание: Бился над сабжем три дня. Перелопатил MSDN. Перелопатил инет. Перелопатил книжки (почему-то бестолковые в большинстве своём). Опять перелопатил MSDN. Картина сложилась следующая: для таких целей рекомендуется использовать стандартный тулз из SDK Framework'a - xsd.exe. Утилита хорошая, но использование её в своем коде представляется проблематичным. Так вот. Разглядывая MSDN в очередной раз, нарвался на подозрительный System.Xml.Serialization.XmlSchemaExporter. Почему-то в MSDN'e его не рекомендуют использовать напрямую, но я его "со злости" взял да и использовал. З.Ы.: В заголовке слово "произвольный" в кавычках потому что к классу предъявляется требование: он должен иметь паблик конструктор по умолчанию З.З.Ы.: Код без коментов - думаю идея ясна  
  Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения следующую строку: [CODEPOST ID=158]Генерация XML схемы (XSD) описывающей "произвольный" класс .NET[/CODEPOST]
Оценка: Проголосовало 4 посетителей, средняя оценка 3.00
Оценить:
  1 using System;
  2 using System.Xml.Schema;
  3 using System.Xml.Serialization;
  4 
  5 public class MyClass 
  6 {
  7 
  8 	public static void Main() 
  9 	{
 10           XmlSchemas schemas = new XmlSchemas ();			
 11 	  XmlSchemaExporter e = new XmlSchemaExporter (schemas);
 12           XmlReflectionImporter ri = new XmlReflectionImporter ();
 13           e.ExportTypeMapping (ri.ImportTypeMapping (typeof (Derived), "MyNS"));	  schemas [0].Write (Console.Out);
 14 	  Console.ReadLine ();
 15 	}
 16 }
 17 
 18 
 19 public class Param 
 20 {
 21 	[XmlAttribute]
 22 	public double MyDouble = 0.9;
 23 	public int MyInteger = 1;
 24 	private DateTime MyDate = DateTime.Now;
 25 	public Param OtherParam = new Param();
 26 }
 27 
 28 public class Derived : Param 
 29 {
 30 	public string MyString = "MyString";
 31 }
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
Вернуться к списку исходников в категории Немного оффтопа
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта