Тривиальный вопрос о том, как ссылаться на разные DTD - PullRequest
0 голосов
/ 04 апреля 2011

прошу прощения, если это слишком простой вопрос, так как я только начинающий в этой области.

Мой клиент долгое время работал с dtd, который называется "article.dtd". Теперь они решили немного расширить это dtd, добавив еще несколько элементов, и переименовать его в «project.dtd». Поскольку новые элементы, добавленные в article.dtd, состоят всего из нескольких строк, они не хотят копировать все из article.dtd при каждом создании project.dtd.

Таким образом, я ищу способ, если есть возможность ссылаться на article.dtd из только что созданного project.dtd, а в project.dtd нам нужно вставить только те строки, которые не содержатся в article.dtd

К вашему сведению, это четыре строки, которые добавляются в project.dtd:

<!ELEMENT project (title, keywords?, feature?, related-terms?, abstract?, classification?, contributor*, reviewer?, materials?, body, related-links?, questions?)>     
<!ATTLIST project %common-atts; %status-atts; %profile-atts;> 

<!ELEMENT abstract ((%para-elems;)+)>
<!ATTLIST abstract %common-atts;>

Спасибо за помощь заранее.

1 Ответ

2 голосов
/ 05 апреля 2011

Да, вы можете сделать это с параметром объекта.(Похоже, вы уже используете много сущностей параметров.)

Вам необходимо добавить объявление сущности параметра (<!ENTITY % entity-name ...>) и ссылку на сущность параметра (%entity-name;).

Вот пример использования имени сущности article-dtd.Это будет ваш полный project.dtd:

<!ENTITY % article-dtd SYSTEM "article.dtd">
%article-dtd;

<!ELEMENT project (title, keywords?, feature?, related-terms?, abstract?, classification?, contributor*, reviewer?, materials?, body, related-links?, questions?)>     
<!ATTLIST project %common-atts; %status-atts; %profile-atts;> 

<!ELEMENT abstract ((%para-elems;)+)>
<!ATTLIST abstract %common-atts;>

Я использовал только идентификатор SYSTEM в объявлении сущности, но вы также можете добавить идентификатор PUBLIC.

Пример:

<!ENTITY % article-dtd PUBLIC "-//SO//Stackoverflow Test//EN" "article.dtd">
...