Как загрузить файл .xsd для отслеживания отношений (вложенности) между элементами? - PullRequest
1 голос
/ 17 февраля 2010

Я знаю, где находится класс XmlSchema в точечной сети, но он не позволяет загружать в него файл. Есть ли чистое решение для загрузки файла xsd и перемещения между элементами?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2010

Я предлагаю проверить этот инструмент: http://www.altova.com/xmlspy.html. Вы можете создать модель данных из любого файла XSD. Я использовал его во многих проектах XML.

0 голосов
/ 17 февраля 2010

Вам нужно использовать XmlSchemaSet, например ::

XmlSchemaSet schemaSet = new XmlSchemaSet();

schemaSet.Add(targetNamespace, schemaUri);
schemaSet.Compile();

foreach(XmlSchemaElement element in schemaSet.GlobalElements.Values)
{
    // do stuff...
}

РЕДАКТИРОВАТЬ: Извините, что не яснее.

Если в комментарии указано // do stuff..., вам нужно пройти через унаследованные типы каждого элемента, доступные в XmlSchemaElement.SchemaType, и встроенный тип элемента, который доступен под XmlSchemaElement.ElementSchemaType.

MSDN содержит всю информацию, к которой вы стремитесь, но она похожа на лабиринт и требует разбора, а также проб и ошибок, чтобы разобраться в этом.

Согласно моему комментарию, следующий класс из одного из моих проектов с открытым исходным кодом может быть полезен здесь:

http://bitbucket.org/philbooth/schemabrute/src/tip/LibSchemaBrute/Navigator.cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...