ho la necessità di definire, in qualche maniera, la sintassi di alcuni messaggi di interfaccia tra due sistemi. In particolare l'esigenza è quella di passare un file, al software che riceve i messaggi, all'inteno del quale ci sono tutte le informazioni che permettono al software stesso di estrarre tutti i campi contenuti nel messaggio sottoforma di coppie nome-valore.

molti dei messaggi, impiegati in questi sistemi, sono costituiti da una struttura iniziale formata da qualche campo, ed una serie di altre strutture che la seguono.

esemplifico con una sintatti simil c

struct PrimoLivello{
int i1, i2
double d1, d2
struct SecondoLivello{
int i3, i4
double d3, d4
}
...
...
...
}

problema nr. 1: il numero di strutture di secondo livello che seguono la struttura di primo livello è definito in un campo della struttura di primo livello. può essere zero.

problema nr. 2 la dimensione delle strutture di secondo livello non è fissa perché, al proprio interno vi sono dei campi opzionali.

non essendo uno specialista di linguaggi connessi ad XML avevo pensato ad XSD, ma, dopo aver letto qualcosa, mi è sembrato che non sia possibile aggiungere una restrizione il cui valore deve essere riferito ad una istanza della struttura stessa.

arrivo alla domanda: devo studiare meglio XSD oppure XSD non è la tecnologia corretta e devo andare a cercare altrove?


grazie mille.