Spazi dei nomi nel modello di messaggio

I documenti di istanza XML e gli schemi XML sono in grado di utilizzare gli spazi dei nomi. Gli spazi dei nomi forniscono un metodo di qualificazione dei nomi oggetto.

Un documento di istanza XML singolo è in grado di contenere elementi e attributi definiti per le applicazioni multiple e da esse utilizzate. E' possibile che per due elementi o attributi differenti all'interno dello stesso documento sia necessario utilizzare lo stesso nome. E' necessario che le applicazioni individuali siano in grado di riconoscere gli elementi e gli attributi da elaborare. In tali circostanze, è possibile distinguere le definizioni qualificando ciascun elemento con spazio dei nomi differente. Con questa modalità vengono evitati problemi di di errato riconoscimento e di conflitto dei nomi.

E' possibile definire uno spazio dei nomi di destinazione mediante gli schemi XML. I tipi, i gruppi, gli attributi e gli elementi globali definiti in uno schema XML sono qualificati dallo spazio dei nomi di destinazione se questo è stato definito. E' inoltre possibile qualificare in modo facoltativo attributi ed elementi locali mediante lo spazio dei nomi di destinazione. Gli spazi dei nomi sono quindi utili nello sviluppo di una libreria degli schemi XML che è possibile sviluppare in modo indipendente. Se il nome dello spazio dei nomi utilizzato per uno schema XML è univoco, non è necessario che uno sviluppatore presti attenzione ai conflitti di nome con oggetti definiti in altri schemi XML.

L'ambito di uno spazio dei nomi si estende oltre il documento che lo contiene ed è identificato da un URI (Uniform Resource Identifier). Per raggiungere tale obiettivo, è necessario che un URI sia univoco. E' possibile che si conosca il concetto di URL (Universal Resource Locator). Gli URI spesso utilizzano la stessa sintassi degli URL, sebbene la definizione URI sia più ampia della specifica di un URL. Un URI di esempio è: http://mycompany.com/xml_schema

Un prefisso di nome spazio è dichiarato come abbreviazione del nome completo dell'URI e viene utilizzato per qualificare tutti gli elementi di appartenenza allo spazio dei nomi. Il prefisso da sostituire di uno spazio dei nomi in un documento di istanza XML o in uno schema XML viene specificato utilizzando un attributo xmlns o xmlnsc. E' inoltre possibile definire uno spazio dei nomi predefinito utilizzando un attributo xmlns o xmlnsc. Se è definito uno spazio dei nomi predefinito, qualsiasi elemento o attributo senza prefisso è qualificato con lo spazio dei nomi predefinito. Se non è definito uno spazio dei nomi predefinito, qualsiasi elemento o attributo senza prefisso non è qualificato con uno spazio dei nomi.

Il modello di messaggio
Il modello di messaggio fornisce la possibilità di supportare gli spazi dei nomi all'interno delle serie di messaggi. E' tuttavia possibile scegliere se si desidera abilitare o disabilitare gli spazi dei nomi nella serie di messaggi. Se si sceglie di disabilitare gli spazi dei nomi quando si crea la serie di messaggi, è possibile abilitare gli spazi dei nomi successivamente. Una volta abilitati gli spazi dei nomi per una serie di messaggi, non è possibile disabilitarli.

E' possibile che in una serie di messaggi singola per la quale sono abilitati spazi dei nomi sia contenuto un numero di spazi dei nomi differenti. Ogni spazio dei nomi è rappresentato da un differente file di definizione dei messaggi. Quando si crea un file di definizione dei messaggi, è possibile scegliere se associarvi uno spazio dei nomi o se situarlo nello spazio dei nomi notarget. Se si sceglie di associare uno spazio dei nomi a un file di definizione dei messaggi, è necessario inoltre scegliere un prefisso.

Se al file di definizione dei messaggi è associato uno spazio dei nomi, i seguenti oggetti globali sono qualificati con lo spazio dei nomi:

  • Elementi
  • Attributi
  • Tipi semplici
  • Tipi complessi
  • Gruppi
  • Gruppi attributo

E' possibile qualificare in modo facoltativo attributi ed elementi locali con lo spazio dei nomi.

Gli oggetti definiti in un file di definizione dei messaggi sono in grado di fare riferimento a oggetti in altri file di definizione dei messaggi nella stessa serie di messaggi. E' possibile effettuare tale operazione importando o includendo un file di definizione dei messaggi in un altro.

XML Wire Format
Lo spazio dei nomi associato al file di definizione dei messaggi fa parte del livello logico del modello di messaggio. Non dipende quindi dalla presenza di XML Wire Format. Tuttavia, se si dispone di un XML Wire Format, le informazioni dello spazio dei nomi del livello logico vengono utilizzate per completare alcune delle proprietà di XML Wire Format. Se gli spazi dei nomi sono abilitati per una serie di messaggi, in XML Wire Format viene mantenuta una tabella di coppie prefisso/URI dello spazio dei nomi. Tale tabella è completata inizialmente con gli spazi dei nomi di tutti i file di definizione dei messaggi e i relativi prefissi generati durante la creazione.

Se si utilizza WebSphere Message Broker e gli spazi dei nomi nella serie di messaggi sono abilitati, il broker non memorizza i valori degli attributi xmlns o xmlnsc nella struttura quando viene effettuata l'analisi di un documento di istanza XML. Non vengono memorizzati neanche i valori degli attributi Ubicazione schema e Nessuna ubicazione dello schema spazi dei nomi. Ciò si verifica poiché quando un documento XML viene scritto, il broker crea nuovamente queste informazioni dalle proprietà di XML Wire Format della serie di messaggi.

Se si utilizza WebSphere Message Broker, la tabella di coppie prefisso/URI dello spazio dei nomi viene utilizzata dal dominio MRM durante l'output di un messaggio XML. Gli elementi e gli attributi qualificati da uno spazio dei nomi dispongono di un prefisso corrispondente a quello contenuto nella tabella. Il broker è inoltre in grado di gestire l'output degli attributi xmlns o xmlnsc che mettono in corrispondenza i prefissi agli spazi dei nomi. E' possibile scegliere se emettere gli attributi xmlns o xmlnsc per tutte le voci nella tabella prefisso/URI spazio dei nomi all'avvio del documento o nel documento quando richiesto.

Se gli spazi dei nomi sono abilitati per una serie di messaggi, in XML Wire Format esiste una tabella di ubicazioni schema che mettono in corrispondenza gli URI dello spazio dei nomi ai nomi file. E' possibile aggiungere voci alla tabella e mettere in corrispondenza un nome file allo spazio dei nomi notarget. Se si utilizza WebSphere Message Broker, la tabella viene utilizzata per emettere gli attributi Ubicazione schema e Nessuna ubicazione dello schema spazi dei nomi all'avvio del documento XML.

ESQL e analisi dei messaggi
Se si utilizza WebSphere Message Broker, i programmi di analisi del dominio XMLNSC, XMLNS e MRM riconoscono nomi dotati di prefisso nei messaggi XML analizzati e li mettono in corrispondenza internamente con gli spazi dei nomi corretti. E' possibile che gli elementi e gli attributi nel dizionario creato dal modello di messaggio siano qualificati o non qualificati con uno spazio dei nomi come descritto nella sezione relativa al modello di messaggio.

Se si utilizza il formato XML nel dominio MRM, gli elementi o gli attributi vengono messi in corrispondenza in base allo spazio dei nomi nel dizionario quando il messaggio analizzato viene messo in corrispondenza con il dizionario creato dal modello di messaggio. Quindi per mettere in corrispondenza un elemento o un attributo in un messaggio con il dizionario, è necessario che il nome e lo spazio dei nomi corrispondano.

Se si usa WebSphere Message Broker, viene fornito supporto per consentire di specificare spazi dei nomi durante la scrittura di ESQL. Non è necessario scrivere ESQL con spazi dei nomi se questi non vengono utilizzati. Tuttavia, se si decide di utilizzare gli spazi dei nomi, i file di definizione dei messaggi sono in grado di utilizzare qualsiasi spazio dei nomi scelto e sarà necessario scrivere ESQL con spazi dei nomi. Lo spazio dei nomi in cui è situato un elemento viene memorizzato nell'albero dei messaggi durante l'analisi. Si tratta di una proprietà logica e viene mantenuta indipendentemente dal formato Wire fisico in cui sono analizzati e scritti i messaggi. E' stata aggiunta nuova sintassi a ESQL per fare riferimento con facilità a spazi dei nomi degli elementi utilizzando prefissi definiti.

Importazione da altri formati
Il modello di messaggio consente di creare file di definizione dei messaggi da altri formati importandoli in Message Brokers Toolkit.
  • Se si importa un file DTD XML, il file di definizione dei messaggi creato verrà situato nello spazio dei nomi notarget.
  • Se si importa un file di schema XML, lo spazio dei nomi di destinazione del file di definizione dei messaggi creato dipende dall'abilitazione o meno degli spazi dei nomi per la serie di messaggi.
    • Se gli spazi dei nomi sono abilitati, lo spazio dei nomi di destinazione del file di definizione dei messaggi creato sarà lo spazio dei nomi di destinazione dello schema XML importato.
    • Se gli spazi dei nomi sono disabilitati per la serie di messaggi, il file di definizione dei messaggi creato sarà nello spazio dei nomi notarget. Tale tipo di importazione non fornisce supporto per spazio dei nomi completo. Se si utilizza WebSphere Message Broker, non sarà necessario scrivere Java o ESQL con spazi dei nomi per elaborare un messaggio XML analizzato secondo il dizionario creato da questo modello di messaggio. Per i motivi di tale procedura, fare riferimento a Importazione di schema XML in serie di messaggi con spazi dei nomi disabilitati
  • Se si importa un file di intestazione C o un copybook COBOL, lo spazio dei nomi di destinazione del file di definizione dei messaggi creato dipende dall'abilitazione o meno degli spazi dei nomi per la serie di messaggi.
    • Se gli spazi dei nomi sono abilitati, lo spazio dei nomi di destinazione del file di definizione dei messaggi creato sarà lo spazio dei nomi notarget. E' possibile sostituire tale spazio dei nomi predefinito specificando uno spazio dei nomi di destinazione nella procedura guidata Nuovo file di definizione dei messaggi. Per i motivi di tale procedura, fare riferimento a Spazi dei nomi con messaggi diversi da XML.
    • Se gli spazi dei nomi sono disabilitati per la serie di messaggi, il file di definizione dei messaggi creato sarà nello spazio dei nomi notarget.

Ulteriori informazioni su XML

Sito Web, all'indirizzo World Wide Web Consortium (W3C) , fare riferimento inoltre a:

Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ad00820_