Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    chiavi primarie e chiavi importate in XML! [AIUTO!!]

    Premetto che sono alle prime esperienze con xml e ammetto che, almeno per ora, non capisco perchè ci si debba complicare la vita con xml quando un database e l'sql risolverebbero in maniera 1000 volte piu efficace questo tipo di problemi. Purtroppo però devo sostenere un esame in università e quindi mi tocca!

    Bene.
    Ho scritto un file xml tramite la Sun One e poi ho fatto generare automaticamente il DTD.

    il file xml è il seguente:

    <Organizzazione>

    <Luoghi>

    <Stuttura id_strutt="1">
    <Nome>Stadio</Nome>
    <Indirizzo>Via.....</Indirizzo>
    ........
    ........
    </Struttura>

    <Stuttura id_strutt="2">
    <Nome>Teatro</Nome>
    <Indirizzo>Via.....</Indirizzo>
    ........
    ........
    </Struttura>

    <Stuttura id_strutt="3">
    <Nome>Palazzetto</Nome>
    <Indirizzo>Via.....</Indirizzo>
    ........
    ........
    </Struttura>

    </Luoghi>

    <Eventi>

    <Evento id_evento="1" id_strutt="2">
    <Artista>Pippo</Artista>
    <Data>14/05/2004</Artista>
    ........
    ........
    </Evento>

    <Evento id_evento="2" id_strutt="2">
    <Artista>Pluto</Artista>
    <Data>20/05/2004</Artista>
    ........
    ........
    </Evento>

    <Evento id_evento="3" id_strutt="1">
    <Artista>Topolino</Artista>
    <Data>10/06/2004</Artista>
    ........
    ........
    </Evento>

    </Eventi>

    </Organizzazione>
    Ok, come potete vedere nei nodi STRUTTURA c'è l'attributo id_strutt che io l'ho pensato come chiave primaria per poi utilizzare quel valore come chiave importata sui nodi EVENTO (i quali a loro volta avranno anche una loro chiave interna id_evento).

    il file DTD che viene generato in automatico invece riconosce queste chiavi come campi CDATA #IMPLIED. Cosi io non ho fatto altro che modificare questo valore e scrivere invece ID #REQUIRED nelle due chiavi primarie e IDREF #REQUIRED nella chiave importata.
    Il problema però viene quando faccio la validazione del XML perchè viene generato un errore:
    "Attribute value "1" of type ID must be a name." per ogni chiave primaria utilizzata e l'errore:
    "Attribute value "1" of type IDREF must be a name."

    ovviamente i numeri "1" che ho indicato sono i valori di chiave e quindi ogni riga di errore riporta un valore diverso.

    mi sapete dare una mano e magari farmi un po piu di chiarezza sull'utilizzo delle chiavi primarie e importate in XML?
    grazie mille!
    Luca

  2. #2
    puoi metter primarykey ai vai attributi dei tag in modo tale da non poter ripeter il valore dell'attributo.
    Ora questo nell'xml schema è possibile nella dtdt da qualche parte l'ho visto che si puo fare.
    Giralatina.it e’ nato con il preciso intento di promuovere varie attività che si svolgono nella provincia di Latina.

    E’ diviso in varie sezioni che spaziano passando dalla gastronomia, al benessere, alla vita notturna ed ai vari negozi da visitare. Le diverse sezioni renderanno più semplice la consultazione ai visitatori.

  3. #3
    puoi essere un po piu preciso? grazie
    Appartamenti in affitto nella riviera Romagnola - Cervia, Milano Marittina, Pinarella, Tagliata, Lido di Classe, Lido di Savio. www.cervia-affitti.com

  4. #4
    Quando definisci tag e attributi nella DTD oppure nello schema puoi definire il loro valore,contenuto ecc...
    Ora non ricordo di preciso la sintassi, cmq è simile a quella dell' sql per una tabella.
    Ovvero usa la parolina primarykey

    Cosa vuol dire

    che se io definisco un attributo id come primary key
    possa avere un xml del tioi
    <tag id="1">
    <tag id="2">
    <tag id="3">
    <tag id="4">
    ...

    ma non posso avere
    <tag id="1">
    <tag id="1">
    <tag id="1">


    n.b i valori di id nel primo caso sono diversi nel secondo no

    capito?
    Giralatina.it e’ nato con il preciso intento di promuovere varie attività che si svolgono nella provincia di Latina.

    E’ diviso in varie sezioni che spaziano passando dalla gastronomia, al benessere, alla vita notturna ed ai vari negozi da visitare. Le diverse sezioni renderanno più semplice la consultazione ai visitatori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.