Глядя на DTD, он говорит следующее (но без разрывов строки):
<!ENTITY Oslash
"<symbol name='Oslash' unicode='00D8'
type='html' glyph='@Oslash;' description='capital O, slash'
ascii='O' > </symbol>"
>
Для любого читателя XML, использующего это DTD, это означает, что «Когда вы видите точное сочетание букв в источнике: Ø
, замените его следующим текстом: <symbol name='Oslash' unicode... > </symbol>
Это означает, что данные XML на самом деле выглядят так:
<forenames>NIELS B<symbol name='Oslash' unicode='00D8'
type='html' glyph='@Oslash;' description='capital O, slash'
ascii='O' > </symbol>IE</forenames>
... что объясняет, почему он не отображается в вашем браузере. Обходным путем будет поиск в вашем XML-документе всех элементов <symbol>
, чтение параметра unicode
и замена их на него.
Если посмотреть дальше, то комментарии в верхней части DTD показывают, что они считали людей в вашей ситуации! Атрибут glyph
в теге <symbol>
- это стандартная HTML-сущность, используемая для этого символа, но с амперсандом, замененным на @.
10 read xml document
20 search for any <symbol> element
30 read the "glyph" attribute
40 remove the <symbol> element
50 replace the @ with an & in glyph
60 write that in the place of <symbol>
70 goto 20