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

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:
  1. Estendendo il punto di estensione idMapping
  2. Utilizzando la pagina delle preferenze Confronto XML.
  3. 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):

  1. Il nome elemento.
  2. Il percorso dell'elemento. Questo è il percorso dell'elemento dall'elemento base del documento XML all'elemento principale dell'elemento stesso.
  3. Il nome dell'id che identifica l'elemento.
  4. 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: