Pracuję nad aplikacją przy użyciu OSGi (platforma Equinox), a jeden z pakietów wymaga sparsowania plików XML. Do tej pory zaimplementowałem to z SAX (javax.xml.parsers.SAXParserFactory) i chciałbym pobrać SAXParserFactory z platformy.Używanie implementacji parsera XML jako usługi OSGi
Widziałem standard OSGi dla XMLParserActivator, aby umożliwić implementacjom JAXP rejestrację się (http://www.osgi.org/javadoc/r4v41/org/osgi/util/xml/XMLParserActivator.html), więc domyślam się, że powinny istnieć pakiety, które oferują SAXParserFactory jako usługę.
Jednak nie mogłem dowiedzieć się, który pakiet dodać jako zależność, aby znaleźć usługę oferującą SAXParserFactory. Staram się odzyskać odniesienie usług przy użyciu
context.getServiceReferences(SAXParserFactory.class.getName(), "(&(parser.namespaceAware=true)(parser.validating=true))")
Zważywszy, że analizowania XML jest dość często coś zrobić, przypuszczam, istnieją implementacje dostępne, lub inne środki do uzyskania usługi parsera XML z platformy.
Każda pomoc będzie bardzo mile widziane!
Cześć, nie jestem przekonana o OSGi, ale dlaczego nie użyć stosu XML w pakiecie z JRE? – ATorras
Cześć, tak, ale mechanizm ładujący klasy OSGi różni się - i stąd wywołanie SAXParserFactory.newInstance() może przysporzyć problemów, ponieważ mechanizm ładujący JAXP spodziewa się znaleźć parser w bieżącym programie ładującym klasy wątków i niekoniecznie musi to być przypadek . –