Toon posts:

[XML] Entities in XML Data Islands

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem. In IE kun je de niet-standaard tag XML gebruiken om zgn. XML Data Islands te creeeren. Het probleem is dat het me niet lukt om HTML-entities (zoals ©) te gebruiken binnen die tag.

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head></head>
    <body>

        &copy; <!-- Geen probleem hier -->
       
        <xml>

            &copy; <!-- Wel probleem hier -->
       
        </xml>

    </body>
</html>


Enigszins logisch natuurllijk omdat er geen DTD voor de XML gedefinieerd is waar deze entities in beschreven staan. Heeft iemand een idee hoe ik een DTD kan toekennen aan de XML Data Island -- of een andere manier waarop ik toch entities kan gebruiken in de XML?

[ Voor 11% gewijzigd door Verwijderd op 23-01-2004 12:20 . Reden: layout f*cked ]


Verwijderd

Het is niet logisch. Entiteiten staan namelijk los van elementen. Daarnaast is het natuurlijk raar om dingen als <xml> te gaan gebruiken als je ook gewoon XSLT kunt gebruiken in IE.

(Wellicht dat je met hexadecimale entiteiten het gewoon kan vermijden?)

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 08:51

RM-rf

1 2 3 4 5 7 6 8 9

© is naar ik meen enkel een HTML gedefinieerd special character,
probeer eens of © wel werkt?

andere opties zijn misschien <xml disable-output-escaping="yes"> of disable-output-escaping binnen de XML-tag toepassen en een andere optie is <![CDATA[©]]>

[ Voor 59% gewijzigd door RM-rf op 23-01-2004 12:39 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
Verwijderd schreef op 23 januari 2004 @ 12:29:
Het is niet logisch. Entiteiten staan namelijk los van elementen.
Ik zie het anders: tussen de XML-tags is het als het ware een nieuw document, waarvoor geen DTD is gedefinieerd. Vandaar dat de dingen die voor de HTML van toepassing zijn niet noodzakelijk voor de XML van toepassing zijn.
Daarnaast is het natuurlijk raar om dingen als <xml> te gaan gebruiken als je ook gewoon XSLT kunt gebruiken in IE.
Normaal gesproken misschien wel (hoewel ik XSLT afgrijselijk vind), maar in dit geval is het eenmaal niet anders.
(Wellicht dat je met hexadecimale entiteiten het gewoon kan vermijden?)
Ook geen optie, helaas.
Misschien even nuttig om opnieuw te vermelden dat het hier om een IE-ony probleem gaat; eventuele Mozilla-suggesties zijn niet van toepassing.

[ Voor 10% gewijzigd door Verwijderd op 23-01-2004 13:18 ]


Verwijderd

Ik zie het anders: tussen de XML-tags is het als het ware een nieuw document, waarvoor geen DTD is gedefinieerd. Vandaar dat de dingen die voor de HTML van toepassing zijn niet noodzakelijk voor de XML van toepassing zijn.
Dat kun je niet anders zien. Zo zit een DTD nou gewoon in elkaar.

Verwijderd

Topicstarter
Verwijderd schreef op 23 januari 2004 @ 16:46:
[...]
Dat kun je niet anders zien. Zo zit een DTD nou gewoon in elkaar.
Je hebt gelijk, natuurlijk, ik begreep je verkeerd.

In de DTD waar ik naar refereer (http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) wordt echter wel gerefereerd naar een Character Entity Set (http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent). Deze is dus blijkbaar wel van toepassing op het XHTML document, maar niet op het embedded stukje XML.

Mijn vraag is, hoe kan ik ervoor zorgen dat ook m'n XML snapt waar die entities op slaan?

Mijn kennis van de techniek achter XML, DOCTYPEs, DTDs, namespaces en ENTs is niet extreem groot dus vergeef het me alsjeblieft als ik hele domme dingen zeg.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Je moet dan een DTD aangeven voor de inhoud van je <xml> element waarin © enzo gedefinieerd staan. Hiervoor kun je gewoon een XHTML DTD gebruiken, maar ik weet niet of je bij die tag uberhaupt wel een DTD kunt meegeven.

Rustacean


Verwijderd

Ja en daarin staan gewoon een aantal entiteiten die gelden voor het complete document als dat 'well-formed' is. Elementen hebben namelijk _niks_ met entiteiten te maken.

In XUL gebruik je bijvoorbeeld alleen maar een DTD voor het invullen van de waarden van de elementen, zodat de taal van de applicatie flexibel blijft. Zo'n document is nooit valid, maar het werkt perfect.
Pagina: 1