Okee iets meer uitleg
De DTD die ik gebruik:
-------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT code ( #PCDATA ) >
<!ATTLIST code id NMTOKEN #REQUIRED >
<!ELEMENT naam ( #PCDATA ) >
<!ATTLIST naam id NMTOKEN #REQUIRED >
<!ELEMENT omschrijving ( #PCDATA ) >
<!ATTLIST omschrijving id NMTOKEN #REQUIRED >
<!ELEMENT merk ( #PCDATA ) >
<!ATTLIST merk id NMTOKEN #REQUIRED >
<!ELEMENT type ( #PCDATA ) >
<!ATTLIST type id NMTOKEN #REQUIRED >
<!ELEMENT waarde ( #PCDATA ) >
<!ATTLIST waarde id NMTOKEN #REQUIRED >
<!ELEMENT stroom ( #PCDATA ) >
<!ATTLIST stroom id NMTOKEN #REQUIRED
omschrijving (drukmeter|pressurepomp|contrib) #REQUIRED
type (stroom|spanning|druk) #REQUIRED >
<!ELEMENT SI_eenheid ( #PCDATA ) >
<!ATTLIST SI_eenheid id NMTOKEN #REQUIRED
eenheid NMTOKEN #REQUIRED
symbool NMTOKEN #REQUIRED
dimensie NMTOKEN #REQUIRED>
<!ELEMENT vermogen ( #PCDATA ) >
<!ATTLIST vermogen id NMTOKEN #REQUIRED >
<!ELEMENT spanning ( #PCDATA ) >
<!ATTLIST spanning id NMTOKEN #REQUIRED >
<!ELEMENT schakeling ( #PCDATA ) >
<!ATTLIST schakeling id NMTOKEN #REQUIRED >
<!ELEMENT doel ( #PCDATA ) >
<!ATTLIST doel id NMTOKEN #REQUIRED >
<!ELEMENT grondstof ( code, naam, omschrijving*, merk, type, waarde, stroom, vermogen,spanning, schakeling, doel, SI_eenheid*) >
<!ATTLIST grondstof type NMTOKEN #REQUIRED
id NMTOKEN #REQUIRED >
-------------------------------------------------------------------------------------------------------
Nu wil ik uit deze DTD gegevens gaan halen.
Ik wil bijvoorbeeld het element Grondstof ophalen en uit dit element wil ik halen dat deze onder zich de volgende elementen heeft: code, naam, omschrijving, merk , type, waarde, stroom, vermogen, spanning, schakeling, doel, SI_eenheid.
Ook wil ik van grondstof weten dat deze de attributen 'type' en 'id' bevat.
Met de JAVAX kon ik het dtd document inlezen. Ook kon ik bijvoorbeeld het element grondstof ophalen. Wanneer ik nu de functie getAttributes() aanriep krege ik niet de gewenste gegevens, maar inplaats daarvan een NullPointerException.
Nu is de vraag met welke parser ik het beste DTD's uit kan lezen.