Оценить XML найти плохой символ? - PullRequest
1 голос
/ 04 января 2012

У меня есть некоторый XML, поступающий из удаленной (Java) веб-службы в мое консольное приложение c #, он записывается в столбец XML Microsoft SQL Server с помощью хранимой процедуры. Иногда XML имеет плохой символ где-то, и SQL Server не дает достаточно информации о том, где именно проблема.

Я бы хотел оценить XML до того, как произойдет запись в базу данных, и, конечно, у меня нет XSD.

Каков хороший способ оценить каждую часть XML на «регулярное соответствие» перед записью в базу данных? Я использую .NET 4.0, C #.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 января 2014

Если у вас есть такая возможность, я бы порекомендовал провести проверку схемы XML для всех данных XML, полученных вами в сторонних службах.

Проверка схемы XML гарантирует, что каждый элемент документа XML действителен в соответствии с определенным договором.

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

0 голосов
/ 04 января 2012

Вы можете попробовать санировать ваш xml, что может немного помочь: http://seattlesoftware.wordpress.com/2008/09/11/hexadecimal-value-0-is-an-invalid-character/

Эта ссылка действительно только помогает фильтровать недопустимые символы, в большинстве случаев, что будет недостаточно или полезно (однако я по-прежнему рекомендовал фильтровать неизвестные символы в целях безопасности).

Я думаю, что для проверки, являются ли теги действительными или нет, вы можете использовать попытку поймать. Если try catch возвращает проблемы в строке 1, проблема может заключаться в том, что в вашем xml нет корневого элемента? Или может быть, что ваша кодировка неверна для XML-документа. Они должны возвращать разные ошибки.

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