xml комментарии внутри xml элементов - PullRequest
0 голосов
/ 11 января 2019

Я хочу знать, допустимо ли иметь XML-комментарии внутри каких-либо элементов xml? Например, допустим ли ниже комментарий xml?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE MSWord [<!-- multiple
     line
     comment -->] >

W3 org @ http://www.w3.org/TR/REC-xml/#sec-comments говорит: Комментарии могут появляться в любом месте документа за пределами другой разметки; кроме того, они

может появляться в декларации типа документа в местах, разрешенных грамматика

Так что мой приведенный выше пример является законным. Если да, пожалуйста, укажите, могут ли комментарии xml существовать внутри любого другого элемента xml.

Спасибо

1 Ответ

0 голосов
/ 11 января 2019

Я думаю, что ваша путаница может быть связана с тем, что вы не поняли точного значения термина "элемент XML".

Да, допустимо иметь комментарий в любом месте содержимого элемента XML (то есть между начальным и конечным тегами), но не внутри начального или конечного тега.

Например, вы не можете иметь комментарий между двумя атрибутами в стартовом теге. Например, следующее не правильно сформировано.

<a b="3" <!-- not 4!--> c="5"/>

В тексте, который вы цитируете, говорится, что в DTD комментарии разрешены только там, где это разрешено грамматикой.

Грамматика для вашего примера

[28]    doctypedecl    ::= '<!DOCTYPE' S Name (S ExternalID)? S?
                           ('[' intSubset ']' S?)? '>'    
[28b]   intSubset      ::= (markupdecl | DeclSep)*
[29]    markupdecl     ::= elementdecl | AttlistDecl | EntityDecl
                           | NotationDecl | PI | Comment

Это говорит нам о том, что между квадратными скобками должно быть указано intSubset, а Comment является допустимым intSubset, поскольку оно является допустимым markupDecl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...