# HTML-Sting in JDOM



## puck (22. Apr 2006)

Hallo, ich bin mit folgender Aufgabe vertraut worden:
ich soll einen HTML-Text in ein ein JDOM-Objekt packen. Später, wenn dieser Text aus dem Objekt wieder herausgenommen wird, soll dieser auch wieder als solcher gelesen werden. Also als HTML-Text an den Browser zurückgegeben werden. 

Also ein JDOM-Objekt mit Elementen und Unterelementen. Eines dieser Elemente ist ein Kommentar, der vom Anwender als HTML-Code übergeben wird. Der Kommentar wird dann in ein Element gepackt, in eine Datenbank gespeichert und beim Abrufen wieder mit all seinen Formatierungen ausgegeben werden.

Frage: wird es da nicht zu Problemen kommen, da die HTML-Tags beim auslesen ja auch als XML-Tags missverstanden werden (könnten ) ?

Gruss Christian


----------



## Roar (22. Apr 2006)

nimm ein :arrow: cdata element


----------



## puck (22. Apr 2006)

Wir benutzen Schema. Ich bin mir nicht sicher aber so viel ich weis gibt es CDATA nicht für Schema??

Gruss Christian


----------



## Roar (22. Apr 2006)

meinst du damit, du willst den html code in ein schema einfügen (ugh!) oder mit dem schema ein cdata element validieren? 
hast du das denn schonmal ausprobiert ob das nicht ohne veränderung am schema geht? ich könnt mir vorstellen, dem schema ists egal, ob du ein cdata oder normalen text hast.


----------



## puck (22. Apr 2006)

Nein, das DOM-Objekt wird gegen ein Schema validiert. Ich muß dem Schema aber mitteilen, daß in dem Element, in dem der Kommentar ( also der HTML-Code vom Anwender ) steht, Code stehten könnte, den er für XML-Code halten könnte. Hmmm verzwickt  :roll: 

Also ich gebe die User-Eingabe (Eingabe vom Browser, klar ) in ein DOM-Element oder XML-Element (ist ja Egal ob DOM oder SAX.. ) und dadurch könnte ein ganz anderes Objekt entstehen, als das, was das Schema erwartet und BUMM nix ist mit validierung. Mit einer DTD wäre das glaube ich einfacher da würde ich dem Parser einfach mitteilen "Achtung hier kommt CDATA. Was da drin steht, interessiert Dich nicht, bis zu dem Zeitpunkt wenn das End-Tag erscheint. 

Aber selbst wenn ich im Schema einen Datentyp definieren kann, der dem Parser diesen Sachverhalt genauso klarmacht, muß ich beim Auslesen des Kommentars aus dem XML-Objekt wieder einen HTML-Text bekommen.

Aber ich denke daß sich das nicht ausschließt. Wenn ich diesen HTML-Text in das XML-Objekt reinbekomme, sollte ich diesen Text auch wieder unverändert zurückbekommen. ???  Hach verzickt!!! 

Gruss Christian


----------



## Roar (22. Apr 2006)

hm, versteh das problem nicht. hab es jetzt selbst ausprobiert und es funktinoiert doch:


```
<?xml version="1.0" encoding="UTF-8"?>

<root>
	<elem><![CDATA[ich bin [b]html[/b]]]></elem>
	<elem>schalalala</elem>
	<elem/>
</root>
```


```
<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="root">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="elem" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
```

:?: ???:L


----------



## byte (23. Apr 2006)

Es gibt doch CDATA auch als Datentyp in XML Schema: http://www.w3.org/TR/2000/CR-xmlschema-2-20001024/#CDATA


----------



## Guest (25. Apr 2006)

OK, überzeugt. Mir wurde gesagt daß es CDATA nicht für Schema gäbe und ich habe es auch zunächst nicht gefunden.

Vielen Dank.

Gruss Christian


----------

