|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
Необходимо проверить файл XML по схеме с помощью MS XML 4. Файл и схема загружаются из памяти. Общие типы данных вынес в отдельную схему, которую необходимо подключать к каждой загружаемой схеме. Если бы схемы загружались с диска, то можно базовую схему подключить с помощью "<xs:include schemaLocation="mainXsd.xsd"/>". А если она уже прогружена в MSXML2::IXMLDOMDocumentPtr из памяти, то как быть? Сейчас приходит вариант самому склеивать две схемы в одну и ее прогружать, но как-то это некрасиво. Базовая схема: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 14:56 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
XMLSchemaCache С уважением, Vasilisk ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 23:08 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 23:09 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
А как сделать тоже самое, используя встроенный DOM? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2009, 11:16 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
А еще, ни как не могу найти: как выцепить из XDocument все нэймспэйсы, которые ему нужны? Пока, придумал тупо искать все атрибуты xmlns. Может быть, есть более цивилизованный способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2009, 11:19 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
MinatavrА как сделать тоже самое, используя встроенный DOM? Что такое "встроенный" DOM? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2009, 22:48 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
_Vasilisk_MinatavrА как сделать тоже самое, используя встроенный DOM? Что такое "встроенный" DOM? Вот, нашел цитату из книги "Как программировать на XML". Рекомендация W3C, где рассмотрено построение дерева XML-документа называется объектной моделью документа (DOM) . Любой синтаксический анализатор, следующий этим рекомендациям, будем в дальнейшем называть анализатором DOM . Класс XmlSerializer как раз следует этим рекомендациям. Значит его тоже можно отнести к DOM-анализаторам. А поскольку он входит в состав системных фрэймворковских библиотек (т.е. присутствует по умолчанию), то я и назвал его "встроенным". Очень надеюсь, что эта неточность в терминологии не будет поводом для пустой полемики на тему "что же называть встроенным". На всякий случай, изложу свою задачу более подробно. Потому что, я действительно не могу с ней справиться. Создаю DataSet по некому XSD-шаблону. В шаблоне присутствует такая строчка: Код: plaintext 1.
Но я не хочу, чтоб "common-types.xsd" лежал на диске. Хочу, чтоб он подтягивался из памяти. Для этого я делаю следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Но на десериализации вываливается эксцепшн "Тип 'urn:my-ns:common-types:date' не объявлен". Т.е. мое пространство имен, где и описан тип "date" не подтянулось :( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 09:31 |
|
Как указать ссылку на схему в памяти (MS XML)
|
|||
---|---|---|---|
#18+
Вот, что удалось нарыть. 1. Код: plaintext
Код: plaintext 1. 2. 3.
2. Формирование переменной reader описано в моем предыдущем посте. Т.е. в ее сеттингах присутствует мой common-types.xsd. Но в компиляции он не участвует. А чтобы он участвовал, нужно либо добавить его в schemaSet , либо в schema.Includes . Первое мне не доступно. Второе можно сделать двумя способами: 1) методом schema.Includes.Add - опять же, не доступно 2) вернув в мой первоначальный XSD строку: Код: plaintext
Теперь вопрос: нельзя ли каким-нибудь образом перехватывать поиск XSD-шника? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 17:27 |
|
|
start [/forum/topic.php?fid=14&msg=35893899&tid=1333592]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 461ms |
0 / 0 |