|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
Генерация 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 |
| Вернуться к списку исходников в категории Немного оффтопа |
|
|
 |
 |
 |
 |
|
|