2015-03-13 4 views
0

Я думаю, что в XML и HTML не допускаются теги с перекрестными областями. Возможно SGML позволяет это. Однако в XML/HTML существуют ли допустимые и разрешенные случаи, когда это может произойти?Есть ли действительные случаи в HTML/XML, где теги не будут полностью содержать?

Что-то вроде:

<p>This is <i>some <b>example</i> text</b> right here!</p> 

Который, скорее всего, генерировать вывод, как: «Это некоторые пример текст здесь»

(Sidenote: С.О. уценки анализатор, видимо, может справиться с этим, кто знал)

"This is *some **example* text** right here!" 

ответ

1

Я думаю, что в XML и HTML, что с кросс-контекстными теги не допускаются.

Правильная

Может SGML позволяет.

Это не так.

В XML/HTML есть ли допустимые и допустимые случаи, когда это может произойти?

№. Разметка только описывает DOM, который является деревом узлов. У узла может быть только один родитель.

"Это некоторые пример текст прямо здесь!"

Это визуализируется как:

<p>"This is <em>some <strong>example</strong></em><strong> text</strong> right here!"</p> 
+0

О, я знал, что текст, который я написал там будет на самом деле не быть оказан таким образом в HTML. Это был просто простой пример концепции, если бы моя терминология была неправильной. Мне было интересно, существуют ли какие-либо случаи такого структурирования в действительности, но похоже, что вы говорите, что наиболее определенно не связано с базовой древовидной структурой DOM. – CodexArcanum

1

внахлест тегов, как это возможно только до тех пор, как это только теги в тексте. Как только текст анализируется на элементы (HTML или XML), невозможно представить такую ​​структуру.

Концепция элементов состоит в том, что это единый объект, это не начало и конец точки в тексте.

Как показывает пример SO-markdown, можно использовать такие теги, если это всего лишь теги в тексте. Как показал Квентин, синтаксический анализатор SO должен преобразовать это в непересекающуюся структуру, чтобы иметь возможность создавать для него допустимый HTML-код.

2

Это запрещено в HTML или XML. Для обзора подходов к обработке, не иерархической разметки, статья Википедии является хорошим местом для начала:

https://en.wikipedia.org/wiki/Overlapping_markup