Confronto XML della piattaforma Eclipse
Il plugin di confronto XML consente di eseguire un confronto strutturale di due documenti XML. Viene generata
una struttura ad albero delle differenze che indica quali elementi XML sono stati aggiunti o eliminati e, per
gli elementi XML modificati, quali differenze esistono rispetto agli attributi o al testo del corpo.
Installazione del plugin
- Copiare la cartella org.eclipse.compare.examples.xml nella cartella secondaria plugins
di Eclipse.
Utilizzo del plugin
Il plugin viene automaticamente utilizzato quando si confrontano i file con estensione
.xml.
Per impostazione predefinita il confronto XML utilizza il metodo di confronto Unordered, che ignora
l'ordine nel quale gli elementi XML appaiono nel documento e li associa in modo da confrontare gli
elementi simili.
Invece, il metodo di confronto Ordered confronta gli elementi XML esattamente nell'ordine con il
quale appaiono nel documento. Nella maggior parte dei casi, questo metodo di confronto non risulta molto
utile.
Il metodo di confronto può essere modificato da un elenco a discesa nella barra degli strumenti della
vista struttura.
Quando un documento XML contiene elementi che possono essere identificati univocamente in base ad un
attributo o al testo di un elemento secondario, si consiglia di creare uno schema di associazione ID per
questo tipo di documento XML.
Fare riferimento a Esercitazioni ed esempi per ulteriori
informazioni sull'uso del plugin.
Schemi di associazione ID
Uno schema di associazione ID specifica per gli elementi XML un attributo o un testo di elemento
secondario che identifica in modo univoco questo elemento. Questo assicura che, nel processo di confronto,
avvenga la corrispondenza tra gli elementi giusti e che questi siano confrontati tra loro. Se non è stata
specificata un'associazione ID per un elemento XML, viene utilizzato un algoritmo di corrispondenza generale. Tuttavia,
questo algoritmo generale non sempre restituisce i risultati desiderati.
La ragione è che l'algoritmo di corrispondenza generale cerca di associare i nodi di due strutture ad albero
per un confronto che riduca al minimo le differenze. Come effetto, spesso due elementi XML sono
considerati corrispondenti perché hanno una struttura simile, ma possono contenere entità di informazione
completamente differenti.
Voci di ordinamento
Quando si utilizza il confronto predefinito Unordered (con o senza associazioni ID) può essere meglio
specificare che gli elementi secondari di alcuni elementi siano confrontati in ordine invece che in base
al metodo non ordinato.
Ad esempio, nel confronto di file ANT, l'ordine di apparizione degli elementi secondari target è
rilevante.
In questi casi, è possibile creare una voce di ordinamento. Una voce di ordinamento specifica che
gli elementi secondari diretti di un elemento XML, identificato dal percorso, saranno confrontati in
base all'ordinamento (gli attributi sono comunque ancora confrontati in modo non ordinato).
Gli elementi dipendenti di questi elementi secondari continueranno ad essere confrontati in modo
ordinato, a meno che non sia altrimenti specificato.
Definizione di schemi di associazione ID e di voci di ordinamento
Gli schemi di associazione ID possono essere creati in tre modi diversi:
- Estendendo il punto di estensione idMapping
- Utilizzando la pagina delle preferenze Confronto XML.
- Utilizzando il pulsante Crea nuovo schema di associazione ID nella
barra degli strumenti o nel menu di scelta rapida
Il primo metodo crea uno schema di associazione definito interno. Uno schema di associazione ID
interno non può essere modificato al runtime. Tuttavia, utilizzando il pulsante
Modifica copia nella pagina delle preferenze, è possibile creare una
copia editabile dello schema di associazione ID interno.
Il secondo e il terzo metodo creano schemi di associazione definiti utente. Questi sono creati
dall'utente al runtime e possono essere modificati in qualsiasi momento nella pagina delle preferenze.
Gli schemi di associazione interni ed utente possono essere associati ad una estensione file. Come
risultato, quando si confrontano due file XML con questa estensione, viene automaticamente utilizzato lo
schema di associazione ID specifico per questa estensione.
Quando si crea o si modifica un'associazione ID per un particolare elemento XML, è necessario specificare
quattro voci (vedere esempio):
- Il nome elemento.
- Il percorso dell'elemento. Questo è il percorso dell'elemento dall'elemento base del documento XML
all'elemento principale dell'elemento stesso.
- Il nome dell'id che identifica l'elemento.
- Se il nome dell'id al punto 3 rappresenta il nome di un attributo dell'elemento oppure il nome di uno
dei suoi elementi secondari (in questo caso il testo dell'elemento secondario sarà utilizzato come id).
Punti di estensione
Per il plugin di confronto XML è disponibile un solo punto di estensione. Viene utilizzato per creare
schemi di associazione ID interni: