Interrogando uno schema rilassante (sintassi XML) in Java, preferibilmente usando Jing

StackOverflow https://stackoverflow.com/questions/9465968

  •  13-11-2019
  •  | 
  •  

Domanda

Sto cercando di trovare un modo per interrogare uno schema RNG evitando la reinvenzione della ruota, per rispondere a domande di base come: quali elementi sono validi figli di un elemento di istanza XML, quali possono / devono essere attributi e così via.

Un post qui sollevato le mie speranze di fare Questo con Jing / Trang, poiché sto già facendo la convalida di RNG con Jing, ma dopo aver cercato in giro non ho trovato esempi di codice sorgente che confermierebbero il reclamo e la navigazione dei documenti API non mi hanno aiutato molto (che a sua volta sembra anche Sii l'unica documentazione in bundle con JING).

Mi piacerebbe davvero evitare di analizzare lo schema nel mio modello di oggetto per fare queste query e sembra anche un po 'ridondante dal momento che so che Jing deve anche farlo da qualche parte. La domanda è come ottenere le informazioni che ho bisogno da esso.

C'è un'altra biblioteca che potrei usare per interrogare lo schema RNG dal codice Java? Nota che non sto cercando di convalidare i file di istanza utilizzando uno schema, sto cercando di interrogare lo schema stesso.

È stato utile?

Soluzione

La risposta a questa domanda sarebbe quella di utilizzare rngom . È un API per edilizia modello oggetto che si basa su Jing. Dal momento che Jing non esporta il suo modello interno sembra essere l'unico modo per evitare la completa reinvenzione della ruota per questo caso d'uso. Dovrai comunque scrivere il tuo codice che farà le domande reali navigando su questo modello (come sto tentando di fare ora).

Imparare a utilizzare RGGOM non è banale come può essere visto Qui , ma il repository del codice del progetto dovrebbe rendere le cose più facili (contiene esempi di utilizzo).

Non ho sfortunatamente trovato nessuna altra biblioteca che mi consentirebbe di interrogare uno schema RNG (o almeno facilitare il dolore di farlo).

Modifica 1

Ho finito per creare il mio modello di oggetto RNG e un parser per generarlo. È finalizzato a gestire il mio caso di uso specifico e mi permette di fare domande come quelle che ho postato nella domanda. Dal momento che non sono state offerte altre risposte, accetterò il mio fino a quando (se non è stato pubblicato una risposta migliore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top