Комментарии в определениях DTD - PullRequest
0 голосов
/ 29 мая 2018

При просмотре HTML 4 dtd (https://www.w3.org/TR/html4/sgml/dtd.html) я вижу много описательных комментариев в определениях dtd.

<!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- char encoding of linked     resource --
  type        %ContentType;  #IMPLIED  -- advisory content type --
  name        CDATA          #IMPLIED  -- named link end --
  href        %URI;          #IMPLIED  -- URI for linked resource --
  hreflang    %LanguageCode; #IMPLIED  -- language code --
  rel         %LinkTypes;    #IMPLIED  -- forward link types --
  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
  accesskey   %Character;    #IMPLIED  -- accessibility key character     --
  shape       %Shape;        rect      -- for use with client-side     image maps --
  coords      %Coords;       #IMPLIED  -- for use with client-side image maps --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --

>

Я знаю, что этотакое SGML dtd. Когда я пытаюсь ввести их в свои XML dtds, я получаю ошибки синтаксического анализа от процессора. Были ли удалены эти комментарии из варианта DTD для XML?

post.dtd:36: parser error : expected '>'
<!ELEMENT A (#PCDATA) -- a link -- >
                  ^
post.dtd:36: parser error : Content error in the external subset
<!ELEMENT A (#PCDATA) -- a link -- >

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

В SGML комментарии, начинающиеся и заканчивающиеся --, могут появляться где угодно или несколько раз в объявлении разметки;в XML объявление разметки должно содержать либо один комментарий, либо другое объявление разметки:

<!-- valid in XML -->
<!-- only -- -- valid -- -- in -- -- SGML -->

В результате определения XML как подмножества SGML текстовая строка -- не допускаетсяпоявляться в комментариях XML в любом месте.

0 голосов
/ 29 мая 2018

В соответствии со спецификацией X3 XML 1.0 допускаются комментарии в декларации DTD.Однако это комментарии в стиле XML, начинающиеся с <!-- и заканчивающиеся -->, как отметил предыдущий комментатор.См. https://www.w3.org/TR/2008/REC-xml-20081126/#NT-DeclSep для деталей синтаксиса.

Однако они не встроены в объявления списка элементов или атрибутов, как в примере выше.Пример из XHTML DTD описывает метатег HTML-тэга, используя синтаксис XML DTD с комментариями.Полный dtd: https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

<!ELEMENT meta EMPTY>
<!ATTLIST meta
  %i18n;
  id          ID             #IMPLIED
  http-equiv  CDATA          #IMPLIED
  name        CDATA          #IMPLIED
  content     CDATA          #REQUIRED
  scheme      CDATA          #IMPLIED
  >

<!--
  Relationship values can be used in principle:

   a) for document specific toolbars/menus when used
      with the link element in document head e.g.
        start, contents, previous, next, index, end, help
   b) to link to a separate style sheet (rel="stylesheet")
   c) to make a link to a script (rel="script")
   d) by stylesheets to control how collections of
      html nodes are rendered into printed documents
   e) to make a link to a printable version of this document
      e.g. a PostScript or PDF version (rel="alternate" media="print")
-->
...