Toon posts:

[xml/dtd] dtd wordt genegeerd

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig voor school(mbo) met een boek over xml. Het is de 1e druk, dus er kunnen nogal wat fouten inzitten, en ik heb ook al heel wat probleempjes gevonden en opgelost.

Ik heb nu dus een xml document gemaakt, genoemd adressen.xml. Deze heb ik later gekoppeld aan een css, en nu wil ik er een .dtd aan toevoegen.

Dat is allemaal gelukt, ik krijg geen syntax errors, maar wanneer ik echter stukjes uit de dtd verander zodat ze fout zijn worden genegeerd. Ook heb ik geexperimenteerd met de voorwaarden(*,? etc), maar ook deze negeerd die. Dus denk ik dat er wat mis is met mijn verwijzing. Ik heb hiernaar gegoogled en o.a. op w3.com gekeken, maar kon nog steeds geen fouten vinden. Ik ben nu dus ten einde raad(klasgenoten wisten het zelfs niet:p), dus vandaar dat ik naar GoT ben gekomen:)

ben nu dus al meerdere uren bezig met een probleempje, wat maar niet wilt lukken en dat is best frustrerend(beetje hetzelfde als toen ik begon met php/mysql) 8)7

hier de verwijzing, kon er zelf geen fouten in vinden. de css werkt overigens wel
code:
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE adressen SYSTEM "adressen.dtd">
<?xml-stylesheet type="text/css" href="adressen.css"?>

<adressen>


hier de eerste 3 regeltjes uit de dtd, kon ik ook geen fouten in vinden:(
code:
1
2
3
<!ELEMENT adressen (persoon)>
<!ELEMENT persoon (vnaam,anaam,adres,pc,plaats,tel,email)> 
<!ELEMENT vnaam (#PCDATA)>

[ Voor 5% gewijzigd door Verwijderd op 08-09-2005 13:14 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Het is een beetje afhankelijk of de parser die je gebruikt wel daadwerkelijk ingesteld is om foutmeldingen te geven zodra het xml bestand niet aan de dtd voldoet. Als je dit gewoon in Internet Explorer test, krijg je daarvoor geen foutmeldingen (gelukkig niet; hoeveel websites zijn er wel niet die niet aan de dtd voldoen? ;))

Dus je zult 't moeten testen met een (volgens dtd-) validating parser.

Laat me je trouwens adviseren XML Schema te gebruiken i.p.v. DTD. DTD is zo langzamerhand toch wel een beetje achterhaald, en met schema's ben je veel flexibeler.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
ah ok, bedankt:). ja xml schemas worden later in het boek pas behandeld, zover was ik nog niet.

net als dat ze eerst met css komen en later pas met xsl. Ik heb het getest in firefox en internet explorer, zal dan eens zoeken naar een browser die zich daar wel wat van aantrekt.

(en als je dat weet kan je me ook vriendelijk een handje helpen door dat even te vermelden, hoewel het met een minuutje google ok moet zijn ;) )

Bedankt!

edit: wat is dan eigenlijk het nut van een dtd, als de meest gebruikte browsers hem negeren? Dan worden documenten er toch helemaal niet "valid", en blijft het alsnog bij "well formed". Maar dat is dan waarschijnlijk de reden dat xml schema's er zijn(waar ik me nog niet in heb verdiept)

[ Voor 25% gewijzigd door Verwijderd op 08-09-2005 13:28 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Wouter04:
(en als je dat weet kan je me ook vriendelijk een handje helpen door dat even te vermelden, hoewel het met een minuutje google ok moet zijn ;) )
Ik weet niet of er browsers zijn die zich daar wat van aantrekken, eigenlijk, anders had ik het direct wel gezegd :P Je moet een validating XML parser hebben.
edit: wat is dan eigenlijk het nut van een dtd, als de meest gebruikte browsers hem negeren? Dan worden documenten er toch helemaal niet "valid", en blijft het alsnog bij "well formed". Maar dat is dan waarschijnlijk de reden dat xml schema's er zijn(waar ik me nog niet in heb verdiept)
Het nut van een DTD bij webpagina's is eigenlijk niet veel meer dan de browser vertellen met wat voor type document 't te maken heeft. De browser kan in theorie altijd zelf beslissen of hij dan het source document wil validaten tegen de DTD. De reden dat ze het niet doen is omdat er gewoon te veel rommel op het internet is; als alle browsers de documenten zouden valideren tegen de DTD zou het internet domweg onbruikbaar worden.

Verder worden DTD's niet alleen voor webdocumenten gebruikt, maar in veel meer toepassingen, waar ze wel gebruikt worden om te valideren. Dat DTD's alleen op 't web gebruikt zouden worden en daarom geen toepassingen zouden hebben (omdat ze niet gebruikt worden voor validatie) is dus een misvatting :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
oja natuurlijk xml was veel meer dan webdesign:p

geloof dat mn teksteditor(notepad ++, opensource) zelfs (gedeeltelijk) in xml is geschreven:p

maar idd had ook al even bedacht een validator te gebruiken, goed dat je me herinnerd:)

bedankt en deze mag nu wel dicht hoor :P

Wouter04