JAXP Version des verwendeten Parsers

takidoso

Erfahrenes Mitglied
Hallo und halli,
Ich würde furchtbar gerne mittels JAXP herausfinden welcher Parser und vor allem welche Version verwendet wird. Ich weiß zwar, dass man natürlich die Systemproperty der verwendeten ParserFactory (avax.xml.parsers.SAXParserFactory) abfragen könnte, aber das liefert mir ja nur den Klassennamen zurück.
gibt es da etwas war mir den Namen und die Version zurückgibt?

bestem Dank im Voraus

Takidoso
 
Hallo,

unter Java 1.4 wurde der als XML Parser Crimson (Apache) verwendet, seit Java 1.5 wurde der durch Xerces (Apache).

Welche Version des Xerces Parsers verwendet wird kann man beispielsweise über:
Java:
/**
 * 
 */
package de.tutorials;

import com.sun.org.apache.xerces.internal.impl.Version;

/**
 * @author Thomas.Darimont
 */
public class ShowJAXPVersionExample {

  /**
   * @param args
   */
  public static void main(String[] args) throws Exception {
    System.out.println(Version.getVersion());
  }

}

rausfinden. EIn Java 1.4 hab ich bei mir nicht mehr installiert, sollte aber so ähnlich gehen.

Gruß Tom
 
Hi Tom,
danke für den Tip. Jedoch frage ich mich, da es sich offenbar um ein eigenständiges Objekt handelt, wie bekomme ich raus, was ich mit JAXP anziehe?
Ich verwende Java 5 jedoch eigentlich den neusten Xerces. Ich will aber sicher sein, dass ich diesen tatsächlich anziehe und nicht den in SDK integrierten, deswegen die Versionsabfrage. Wenn ich nun aber die Version so direkt abfrage, wie kann ich mir sicher sein, dass es tatsächlich die Version ist, die ich über JAXP ist? :confused:

Takidoso
 
Hallo nochmal,
ich stelle fest, obgleich ich in der Eclipseumgebung den neusten Xerces mit eingebunden habe (Version 2.9.1) bekomme ich vom Versionsobject Xerces-J 2.6.2 angezeigt.
Offenbar überdeckt die interne Xerces-Implementierung die neu engesetzte.
Systemproperty ist entsprechend gesetzt javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
Was kann ich tun, damit die neue Version angezogen wird?
 
Irgendwie gibt er mir zwar mittlerweile die richtige Version wohl mit raus, aber was ich äußerst schade finde ist, dass Version.getVersion() ein apache methode zu sein scheint, denn mal abgesehen vom package, wenn ich die Xerces-bibliothek nicht mit in den Klassenpafd aufnehme, mosert mir die Laufzeitumgebung an, dass Version unbekannt sei.
Da ich aber eigentlich es so verstanden hatte, dass Xerxes doch ab 1.5 intern verwendet wird, wundert es mich jetzt etwas, dass ich extra eine Xerces-Bibliothek in den Klassenpfad angeben muss.:confused:
Gibt es da nicht irgendwie ne andere methode, die Implementationsunabhängiger nach der Version auskunft gibt?
Ich vermute mal, oder wollte es zumindest herausfinden, ob nicht unter javax.xml.parser.SaxParser eine Property existiere, diei die Version beinhaltet, doch leider habe ich bisher noch nirgendwo im Netz eine Propert-Liste gefunden, di eüber den richtigen Schlüssel auskunft gibt, noch scheint es eine Möglichkeit zu geben, mal apaushal alle Properties zu bekommen :mad:
Kann mr da jemand vielleicht Hinweise geben wo ich eine solche Auflistung möglicher Properties herbekommen könnte?
 
Zurück