PDA

View Full Version : Spiegatemi il namespace in XML vi prego!


anonimizzato
30-07-2004, 20:05
Allora, ho da poco iniziato a studiare l'XML e più o meno mi è chiaro tutto, tuttavia non riesco ancora ad avere ben preciso il concetto di namespace.

in parole povere ho capito che un namespace serve per rendere unico il significato di uno o più elementi in un documento che potrebbe contenerne di identici ma riferiti a situazioni diverse e ho capito che il namespace punta ad un URI (URL) ma non ho capito a che diavolo punta stò URI ... ad una DTD? ad un'altro file XML? ad uno SCHEMA XML? ad un Mp3? ad un video porno? :muro:

Chiaritemi stò concetto (nel modo più semplice possibile e con qualche esempio) vi prego. :cry:

beppegrillo
30-07-2004, 21:19
L'url non punta ad una pippa è solo un indicazione formale ;)

kingv
30-07-2004, 21:40
Originariamente inviato da Sgurbat
in parole povere ho capito che un namespace serve per rendere unico il significato di uno o più elementi in un documento che potrebbe contenerne di identici


hai detto tutto tu e tutto corretto.

Hai presente un namespace in C++ o un package in Java? ecco stessa roba.

come ha detto beppegrillo puoi scriversi pippo o pluto e va bene lo stesso, si usano delle URL per convenzione (e per dare un riferimento sensato)

anonimizzato
31-07-2004, 12:18
non sono un programmatore, su di un altro forum mi hanno appena spiegato che l'URL punta ad uno SCHEMA XML o ad una DTD è corretto?

kingv
31-07-2004, 21:01
Originariamente inviato da Sgurbat
non sono un programmatore, su di un altro forum mi hanno appena spiegato che l'URL punta ad uno SCHEMA XML o ad una DTD è corretto?


no non e' corretto, all'inizio del tuo file XML puoi fare riferimento a uno schema a un DTD ma non c'entra col namespace.

diciamo che se tu hai un elemento XML che si chiama Book per essere sicuro di differenziarlo da quello che usano da amazon usi un namespace diverso.

anonimizzato
01-08-2004, 09:42
continuo a non capire perfettamente, potresti farmi degli esempi concreti di namespace associati ad elementi XML, la cosa che non capisco è che se il namespace non punta ad uno schema o ad una DTD come è possibile che il parser elabori correttamente il codice?

O forse il namespace serve solo a chi legge il documento?

Scusami ancora ma preferisco non lasciare nel dubbio questo concetto abbastanza importante.

Grazie ancora cmq. ;)

kingv
01-08-2004, 12:49
Originariamente inviato da Sgurbat

Scusami ancora ma preferisco non lasciare nel dubbio questo concetto abbastanza importante.




mettiamo che tu abbia un elemento XML che rappresenta un libro e uno che rappresenta un cliente.

libro ha un sottoelemento "titolo", ma anche cliente potrebbe averlo ("dott.", "ing." ecc.)

mettiamo anche che per qualche motivo ti trovi ad avere nello stesso XML i due elementi libro e cliente (magari perche' stai trattando gli ordini).
se "libro" e "cliente" non utilizzassero namespace diversi il ricevente l'XML non riuscirebbe a distinguere uno dall'altro, chiaro?

kingv
01-08-2004, 12:52
N.B. il fatto di usare un'URI per il namespace e' solo una convenzione utile perche' su internet è garantita l'unicità.
il parser non si mette a fare download di schema o altro da quella URL :p

anonimizzato
01-08-2004, 16:41
Originariamente inviato da kingv
mettiamo che tu abbia un elemento XML che rappresenta un libro e uno che rappresenta un cliente.

libro ha un sottoelemento "titolo", ma anche cliente potrebbe averlo ("dott.", "ing." ecc.)

mettiamo anche che per qualche motivo ti trovi ad avere nello stesso XML i due elementi libro e cliente (magari perche' stai trattando gli ordini).
se "libro" e "cliente" non utilizzassero namespace diversi il ricevente l'XML non riuscirebbe a distinguere uno dall'altro, chiaro?

si certo ma questo lo sapevo già, è solo che non capisco come il parser xml possa validare un costrutto xml in cui uno stesso elemento ha pià significati diversi se non gli specifico la DTD o lo SCHEMA a cui riferirsi.

kingv
01-08-2004, 18:09
Originariamente inviato da Sgurbat
si certo ma questo lo sapevo già, è solo che non capisco come il parser xml possa validare un costrutto xml in cui uno stesso elemento ha pià significati diversi se non gli specifico la DTD o lo SCHEMA a cui riferirsi.


non capisco cosa intendi, namespace e parser validanti non sono la stessa cosa.
io posso utilizzare namespace anche senza utilizzare DTD e senza validare l'XML

erik
03-08-2004, 17:11
Prova a vedere il materiale on-line di inf. di bologna, lab di tecnologia web. Il l'ho trovato interessante.

link (http://www.cs.unibo.it/~fabio/corsi/ltw01/)

Ciao

anonimizzato
07-08-2004, 10:09
ok grazie ancora a tutti cmq.


Ah già che ci sono vi chiedo ancora un favore ....

Come si fà ad incorporare un'immagine in un file XML, ho visto la parte su ENTITA' e NOTAZIONI ma non riesco a richiamare un file binario come una semplice immagine nel documento xml.

Questo è il mio codice:

<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet href="stile.css" type="text/css" ?>

<!DOCTYPE documento[
<!ELEMENT documento (contatto)>
<!ELEMENT contatto (nome,cognome,eta,tel,img)>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT cognome (#PCDATA)>
<!ELEMENT eta (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT copyright (#PCDATA)>
<!ELEMENT img EMPTY>
<!ATTLIST img src ENTITY #REQUIRED>
<!ENTITY immagine SYSTEM "img.gif" NDATA GIF>
<!NOTATION GIF SYSTEM "img.gif">
]>

<documento>
<contatto>
<nome>Mario</nome>
<cognome>Rossi</cognome>
<eta>35</eta>
<tel>039 123456</tel>
<img src="immagine" />
</contatto>
</documento>

Dove sbaglio? Cosa manca?

Thanks again