Io navigo attraverso il web. Ho trovato che lo standard XMLStreamReader è API di stile Cursore per l'analisi XML. E XMLEventReader è API di stile Iterator per l'analisi XML. Qualcuno potrebbe dirmi in dettaglio?Qual è la differenza tra XMLStreamReader e XMLEventReader?
risposta
Dai un'occhiata alla spiegazione: https://www.ibm.com/developerworks/library/x-stax1/
Sia XMLStreamReader e XMLEventReader consentire all'applicazione di iterare sul torrente XML sottostante per conto suo. La differenza tra i due approcci risiede nel modo in cui espongono parti del InfoSet XML analizzato. XMLStreamReader funge da cursore che punta appena oltre il token XML analizzato più recentemente e fornisce metodi per ottenere ulteriori informazioni a riguardo. Questo approccio è molto efficiente in termini di memoria in quanto non crea nuovi oggetti. Tuttavia, gli sviluppatori di applicazioni aziendali potrebbero trovare XMLEventReader leggermente più intuitivo perché in realtà è un Iterator Java standard che trasforma l'XML in un flusso di oggetti evento. Ogni oggetto evento a sua volta incapsula informazioni relative alla particolare struttura XML che rappresenta. La parte 2 di questa serie fornirà una descrizione dettagliata dell'API basata sull'iter dell'evento. Per quanto riguarda lo stile API da utilizzare dipende dalla situazione. L'API basata su iteratore eventi rappresenta un approccio più orientato agli oggetti rispetto all'API basata su cursore. In quanto tale, è più facile da applicare in architetture modulari, poiché lo stato corrente del parser si riflette nell'oggetto evento; quindi, un componente dell'applicazione non ha bisogno di accedere al parser/lettore durante l'elaborazione dell'evento. Inoltre, è possibile creare un XMLEventReader da un XMLStreamReader utilizzando il metodo createXMLEventReader (XMLStreamReader) di XMLInputFactory.
Vedere https://docs.oracle.com/javase/tutorial/jaxp/stax/api.html per iniziare. –