Принудительное использование CDATA в XML-схеме

Я создаю схему xml и хочу убедиться, что значения во всех элементах являются элементами CDATA.

Есть ли способ заставить это использовать XML-схему?


person Dana    schedule 25.12.2008    source источник
comment
CDATA — это просто удобный способ инкапсуляции текста. Вы должны заботиться, если это текст с экранированием сущности или CDATA, не так ли? Я что-то пропустил?   -  person cletus    schedule 25.12.2008
comment
Я использую эту схему как средство синхронизации между несколькими коллегами, которые могут вносить изменения в определенные XML-файлы. Наш стандарт заключается в том, что значения XML должны быть окружены CDATA, и я хотел бы использовать XML-схему для обеспечения соблюдения этого стандарта. Имеет ли это смысл?   -  person Dana    schedule 25.12.2008
comment
Не как таковой. Какова цель этого стандарта?   -  person Robert Rossney    schedule 27.12.2008
comment
Чтобы заставить XML-файлы, сгенерированные машиной, использовать cdata. Если XML-файлы, сгенерированные машиной, являются простыми (без cdata), они могут быть правильными при первом использовании, но позже дать сбой, когда данные содержат конфликтующие символы. Так что хотелось бы с самого начала принудительно применить блок cdata, чтобы сразу отловить ошибки программистов и избежать возможных проблем в будущем. Плохая идея?   -  person Jarekczek    schedule 28.08.2012
comment
Хорошая причина для того, чтобы хотеть что-то подобное, состоит в том, чтобы на уровне схемы обеспечить важность пробелов в значении. Если это будет сделано в схеме, это будет означать, что инструменты, которые выполняют сериализацию объектов на основе схемы, будут знать, что всегда нужно помещать туда блок CDATA, поэтому, если человек позже редактирует файл, он не испортит форматирование.   -  person majinnaibu    schedule 12.11.2012
comment
Возможный дубликат Как мне указать в XSD, что элемент содержит только CDATA?   -  person Polluks    schedule 24.09.2018


Ответы (1)


Насколько я помню, XML-схема работает с XML Infoset, то есть с XML-документом после его анализа сущности разрешаются, нормализуются пробелы и обрабатывается CDATA. CDATA — это способ упростить текстовую сериализацию, не являющуюся частью структурной модели. Итак: Нет. Ни в DTD, ни в RELAX NG.

person ttepasse    schedule 25.12.2008