Что я до сих пор помещаю текст в теги CDATA и разбираюсь с возможностью появления CDATA в тексте, разбивая его на несколько соседних CDATA.Что такое хороший способ кодирования произвольного текста в XML в удобном для восприятия человеком способом?
Я не уверен в этом, но синтаксические анализаторы XML могут не поддерживать символы новой строки внутри тегов CDATA, правильно? Это также означало бы ускользнуть от них ...
Я хочу сгенерировать эти XML-файлы с помощью Perl и проанализировать их с помощью C++ (с использованием expat), Java и C#.
Самое главное, что я хочу, чтобы полученные файлы были в некотором смысле удобочитаемыми/модифицируемыми. Кто-нибудь знает какую-либо схему кодирования, которая соответствует этим потребностям? Я использую это для хранения данных для базы данных, поэтому он должен принимать произвольный текст и после разбора возвращать тот же самый текст.
Просто, чтобы убедиться, что если я взял любую строку, которая может содержаться в столбце SQL_WCHAR некоторой базы данных, кодируйте с помощью одного из стандартных Perl XML библиотеки, такие как XML :: Code, а затем проанализировать его с помощью парсеров стандартной библиотеки expat или C#/Java, я всегда верну исходную строку? – Bwmat
да, точно. если вы этого не сделаете, тогда есть ошибка. вы должны установить кодировку (поэтому документ начинается с xml version = "1.0" encoding = "UTF-8"?>) и следуйте всем правилам - в основном используйте библиотеку для создания документа, а не «вручную», с строками или операциями печати. –
ps аналогично, с другой стороны, вы должны разобрать его с помощью библиотеки, а не использовать регулярное выражение и т. Д. –