En se référant à un local DTD en Java
J'ai un peu de XML que je suis d'analyse avec un analyseur SAX en Java. Il commence avec ce préambule:
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"http://www.w3.org/Math/DTD/mathml3/mathml3.dtd">
Comment puis-je changer cela d'utiliser un local DTD?
Je suppose que je pourrais faire quelque chose comme ceci:
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"file:///c:/MathML/mathml3.dtd">
Pas exactement comme ça, mais quelque chose comme ça. Cependant, j'ai besoin de le chemin pour être indépendant du système de l'utilisateur.
Comment puis-je utiliser un local DTD avec un chemin relatif au chemin de classe?
Peut-être utile de regarder cette question: stackoverflow.com/questions/243728/...
Une autre possibilité est d'utiliser un Catalogue XML qui résout le doctype à un fichier local sans modifier le XML. Cela pousse le changement d'un paramètre à l'analyseur d'invocation.
Une autre possibilité est d'utiliser un Catalogue XML qui résout le doctype à un fichier local sans modifier le XML. Cela pousse le changement d'un paramètre à l'analyseur d'invocation.
OriginalL'auteur Paul Reiners | 2011-06-13
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à cet article sur l'utilisation des catalogues XML pour résoudre Dtd localement sans avoir à modifier votre source XML. Les étapes de base sont:
OriginalL'auteur Jim Garrison
Lorsque vous traitez avec le Web Apps, vous pouvez mettre la dtd dans le dossier lib et de se référer à elle comme:
C'est plus simple mais c'est juste une solution de contournement
J'ai posté la réponse comme une application web solution et non pas pour des raisons de simplicité
Ce doit être la accepté de répondre à l'omi.
lib dossier doit contenir "seulement" des bibliothèques.
OriginalL'auteur Hitham S. AlQadheeb
La solution est de fournir à la DTD de l'emplacement du fichier dans le système à l'aide de classpath. Si le DocType qui a travaillé hors ligne serait:
java.net.MalformedURLException: protocole inconnu: classpath je reçois cette exception
OriginalL'auteur alok
Aussi une autre façon peut-être de garder les dtd au localhost, de sorte que le chemin devient quelque chose comme:
Certainement pas la solution la plus élégante, mais sûrement.
devrait fonctionner, mais pas bon.
OriginalL'auteur Puneet Akhouri