XML DTD validácia

Programovacie jazyky, rady, poradňa...
fuck111
Amateur
Amateur
Príspevky: 11
Registrovaný: 20 júl 2011, 16:29

XML DTD validácia

Príspevok od používateľa fuck111 »

Neviem či to patrí do programovania ale nenašiel som v rýchlosti tému zaoberajúcu sa XML. Pokúšam sa deklarovať v dtd súbore že obsah tagu má byť typu #CDATA a nikde som nenašiel ako sa to má správne robyť(vlastne ani presne neviem ťo to znamená) Moja snaha je aby neprebehol preklad obsahu contentu xml parserom, chcem aby mohol obsahovať znaky ako "<,>,&". Zatiaľ som to skúšal takto:

Kód: Vybrať všetko

  <!ELEMENT root	  (massage+)>
  <!ELEMENT massage   (content,status)>
  <!ELEMENT content   (#CDATA)>
  <!ELEMENT status    (#PCDATA)>
Na súbore:

Kód: Vybrať všetko

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE root SYSTEM "test.dtd">

<root>
	<massage>
		<content>Idešč<efsefrs</content>
		<status>true</status>
	</massage>
</root> 
Lenže generuje chybu a očividne prekladá aj content, ak sa to dá a niekto vie ako budem vďačný, akceptujem aj technológiu xsd.
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: XML DTD validácia

Príspevok od používateľa TommyHot »

Aku chybu ti hadze?

Jednotlive obsahy elementov prebehni cez nejaky filter (v PHP napriklad cez htmlspecialchars(); ) este predtym, nez ich das do XML.

Btw musis pouzivat XML? Neviem sice co robis, ale nebol by JSON lepsie riesenie? XML je vo vela pripadoch dost nepouzitelny.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: XML DTD validácia

Príspevok od používateľa audiotrack »

zapisovať entity do xml je kravina. Obsah s neštandartnými znakmi sa uzatvára do CDATA blokov, aby sa neprekladal. A on to chce zadefinovať rovno v dtd
Napísať odpoveď