У меня есть xml-файл с dtd-схемой. Я пытаюсь добавить некоторые правила в отношении атрибутов и элементов. до сих пор, мне удалось иметь два ATTLIST
для различных элементов в следующем формате:Объявление нескольких правил в схеме DTD
<!DOCTYPE root [
<!ATTLIST a ..... >
<!ATTLIST b ..... >
]>
Теперь я хочу сделать следующее: предположим, у меня есть:
<a ...><value>some_value_with_&&&</value></a>
конечно, это значение должен быть окружен <![CDATA[some_value_with_&&&]]>
Поскольку у меня уже есть схема dtd, мне показалось, что я могу удалить CDATA (оставив ее как было изначально), а затем объявить ее тип cdata в DTD, возможно ли это? Я попытался добавить следующее: <!ELEMENT value (#CDATA)>
, но у меня есть две проблемы с ним:
Это заставляет себя (я предполагаю) на любом элементе значения, может я ограничить его только
a
элементов?Я работаю с java. с этим я получаю следующее сообщение об ошибке:
A '(' character or an element type is required in the declaration of element type "value".
Почему это?
Я не уверен, что понял. Можно ли объявить элемент как cdata, чтобы я мог просто заполнить содержимое элемента уникальными символами (&> !?) без фактического написания ''? – buddy123
Нет, невозможно объявить элемент как «cdata» (или «CDATA»). Раздел CDATA просто используется в XML-документе, если это необходимо. Он не может быть объявлен в DTD. – mzjn