|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Не уверен, сюда ли спрашиваю, но всё таки: Проблема такая. Я через C# код открываю XML-файл и накладываю схему: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
На данном этапе XML-документ полностью валидный. После этого добавляю ноде новый валидный атрибут: Код: c# 1. 2.
И пытаюсь завалидировать измененную ноду: Код: c# 1.
Но при запросе: Код: c# 1.
Любая нода возвращает Код: c# 1.
То есть XML-документ потерял валидацию по схеме. Помогает только полная валидация всего XML-документа: Код: c# 1.
После этого всё валидно, в том числе и добавленный атрибут. Но XML-документ большой и валидировать каждый раз целиком не вариант. Возможно ли валидировать только измененную ноду и чтобы при этом схема не отваливалась от нетронутых нод? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 19:05 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Вариант второй. Пускай схема отваливается, но хотелось бы валидировать выбранную ноду. Кто-нибудь знает, как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2013, 16:36 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Нельзя валидировать ноду в вакууме. Согласно схеме, она должна быть в строго определенном месте, а как узнать, правильное ли у нее место без валидации всего документа? Если производится всего одно действие, зачем его валидировать? Ты же хардкодишь его своими руками, тем самым гарантируя валидность. Если действий много, почему нельзя валидировать весь документ один раз после обработки? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2013, 16:52 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Antonariy, Необходимо получать валидную ноду после её изменения/добавления Просто я тогда не понимаю, зачем перегрузка этого метода с указанием ноды для валидации: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2013, 17:06 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Leone1930Antonariy, Необходимо получать валидную ноду после её изменения/добавленияТы получаешь ноду, валидированную самописным программным кодом, который ты писал с оглядкой на схему. Зачем ее дополнительно валидировать схемой? Leone1930Просто я тогда не понимаю, зачем перегрузка этого метода с указанием ноды для валидации: Код: c# 1.
Действительно, вопрос. Видимо, проверяется все же не весь документ, а лишь путь от ноды до рута. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2013, 17:21 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Antonariy, можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 19:08 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
AntonariyНельзя валидировать ноду в вакууме. Можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 19:08 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
Leone1930, Вообще этот нюанс в документации описан: Specifically, if the child elements or attributes of an element are inserted, updated, or deleted, then the validity of the element becomes unknown. This is represented by the Validity property of the element's SchemaInfo property being set to NotKnown. Furthermore, this effect cascades upwards recursively across the XML document, because the validity of the element's parent element (and its parent element, and so on) also becomes unknown. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2013, 15:08 |
|
После добавления атрибута для одной ноды отваливается схема для всего XML-файла
|
|||
---|---|---|---|
#18+
guest12345Leone1930, Вообще этот нюанс в документации описан: Specifically, if the child elements or attributes of an element are inserted, updated, or deleted, then the validity of the element becomes unknown. This is represented by the Validity property of the element's SchemaInfo property being set to NotKnown. Furthermore, this effect cascades upwards recursively across the XML document, because the validity of the element's parent element (and its parent element, and so on) also becomes unknown. Ньюанс я этот тоже видел. И в документации и на практике. Но вот если взять непровереный XML-документ и схему для него. Потом, не проверяя весь документ и ничего не записывая в него, сделать валидацию любой приглянувшейся ноды методом Код: c# 1.
, то нода "node" вернет "Valid", либо "Invalid". А все остальные, даже дочерние будут в статусе "NotKnown". Так что валидировать одну ноду можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2013, 16:01 |
|
|
start [/forum/topic.php?fid=14&fpage=17&tid=1332522]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 147ms |
0 / 0 |