[Java] DTD en XML problemen.

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik heb een dtd gemaakt, en een XML uitvoer. Maar ik moet die DTD nog opnemen in mijn XML bestand (gaat zometeen automatisch maar nu even met de hand).

stukje van mij XML
code:
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE multiDatabase SYSTEM "MultiDatabase.dtd">

<multiDatabase name="MultiDatabase" label="MultiDatabase">
  <databaseList>

Ik heb een paar problemen. Hij kan ten 1e dit bestand niet parsen. Hij zegt dat hij die dtd niet kan vinden (staat in dezelfde dir als xml bestand) en hoe krijg ik het zometeen voor elkaar dat die DTD opgenomen is in mijn jar? Want ik wil niet dat dat ding rondslingerd in een of andere save directory :)

[opm]XML is wel vrij ontoegangkelijk. De wereld aan info, maar nergens een handleiding waar je veel aan hebt.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum, die XML file staat zeker niet in de current dir?

Die SYSTEM identifiers zuigen eigenlijk nogal als het geen http-URL is.

Ik gebruik een eigen gemaakt systeempje, vergelijkbaar met de CLASSPATH. DTDs moeten dan opgegeven worden door middel van een namespace (= package). Ze worden gevonden via een opgegeven DTDPATH.

Ik wil echter over gaan stappen op het OASIS systeem. Deze werkt namelijk met public identifiers en een catalog van XML schema's en DTDs.

Hier kan je een implementatie downloaden en er wordt ook precies uitgelegd wat het probleem is met die SYSTEM identifiers. Must read: erg duidelijk en alles oplossend :) .

http://www.sun.com/software/xml/developers/resolver/article/

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
ik zal het eens doorploegen want ik zie eerlijk gezegd door de bomen het bos niet meer. En de dtd staat wel in dezelfde dir als de xml.. en ik gebruik jouw tooltje hiervoor, dus ik sta ook in de goeie working dir.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum vaag dan :? .

Die info bij de Resolver van Sun is erg duidelijk :) . Het probleem is in feite dat je een DTD altijd via zijn public identifier zou moeten kunnen vinden. Dit doen browsers bijvoorbeeld ook. Deze DTDs worden dan ergens opgeslagen op de schijf. De meeste XML parsers hebben niet zo'n voorziening omdat ze dan teveel aannames maken. De OASIS aanpak lost dit probleem.

Eventueel wil ik mijn methode ook wel online zetten, maar als ik jou was zou ik liever de resolver met OASIS gebruiken :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment