Destiny
|
Posted: Thu Mar 17, 2022 13:09 Post subject: |
|
|
Урра!!! День добрый!
Собсно по этому - но более по второму вашему продукту - Cert View есть вопросы/предложения.
В этой теме, значится, пройдемся то по этому продукту...
В теме про Cert View(https://forum.wincmd.ru/viewtopic.php?p=135008) напишу про неё.
XML Review - выполняет валидацию. Что по идее хорошо! НО! часто есть нужда в просмотре
ЧАСТИЧНЫХ xml! Т.е. файлов, где нет одного элемента верхнего уровня. А есть лишь список
подэлементов. Ваш плагин в этом случае отображает лишь первого представителя из этого
списка и всё. Потому как есть ошибка валидации КАК БЫ ожидаемого настоящего XML дерева.
НО в этом конкретном случае было бы очень полезно иметь некую псевдозаглушку, которую
можно даже настраивать в диалоге настроек, работающую как КОРНЕВОЙ фиктивный первый
элемент. Так мы бы хоть и искусственно, но вышли бы из сложного положения. К примеру,
по умолчанию, пусть это будет тег <ROOT_TAG>....</ROOT_TAG>
И тогда, если встречается ошибка парсинга
Position ....: В документах XML допускается только один элемент верхнего уровня.
то, если в настройках включено - обкладывать все содержимое файла тегом ROOT_TAG - значит
эта ошибка была бы нивелирована! И тогда все содержимое файла по сути стало бы однозначно
валидным, т.к. оно будет обложено одним тегом верхнего уровня, что и требуется по правилам
При генерации XPath для повторяющихся тегов вы не вставляете
адресный идентификатор [i], где i - это число по порядку в повторе.
Code: |
<LIST_OF_PERSONS>
<DATA>
<NAME>...</NAME>
<ID>...</ID>
<PASSPORT>
<SERIJA>...</SERIJA>
<NOMER>...</NOMER>
</PASSPORT>
</DATA>
<DATA>
<NAME>...</NAME>
<ID>...</ID>
<PASSPORT>
<SERIJA>...</SERIJA>
<NOMER>...</NOMER>
</PASSPORT>
</DATA>
<DATA>
<NAME>...</NAME>
<ID>...</ID>
<PASSPORT>
<SERIJA>...</SERIJA>
<NOMER>...</NOMER>
</PASSPORT>
</DATA>
</LIST_OF_PERSONS>
|
И вот для второй ДАТЫ для тега "Серия Паспорта", к примеру, XPath должен быть вида:
/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA
А у вас будет написано просто /LIST_OF_PERSONS/DATA/PASSPORT/SERIJA
вот сторонний ресурс есть, где можно проверить мои слова:
https://xmltoolbox.appspot.com/xpath_generator.html
Тоже и для JSON файла. Самой валидации теперь вроде как нет в меню, т.е. саму
ошибку вы не пишите, НО и парсинг файла далее не производите, если встретили её.
К примеру, в некоторых JSON файлах после элементов пишутся комментарии.
Code: |
"Common": {
"ButtonRadius": 0,
"WindowBorderRadius": 3, // 0 - None, 1 - Top, 2 - Both, 3 - Small
"ClientBackColor": "1d8abd",
"GroupBoxColor": "1586bb", // Required
"PaintClassicFocus": true
}
|
стандартом файла они вроде не предусмотрены, и ваш парсинг обрывается на
Code: |
{
"Common":{
"ButtonRadius":0,
"WindowBorderRadius":3
}
}
|
И хорошо бы, чтоб в такой ситуации, во-первых, все же причина прекращения парсинга писалась.
Код явно же по какой-то причине прекратил работу на символах ": 3" или " //"?
Ну и во-вторых, чтобы подобное прощалось для JSON файлов. Понятно, что список "ошибок",
подобных этой, еще тока будет наполняться, но надо же с чего-то начинать))) |
|