Προς το περιεχόμενο

xml DTD validation


mythodea

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, θα ήθελα να ρωτήσω πώς μπορώ να ορίσω μέσα σε κανόνες DTD ένα element το οποίο να μπορεί να παίρνει μόνο 2 συγκεκριμένες τιμές, ή τη μια ή την άλλη δηλαδή, αλλά όχι και τις 2 μαζί ταυτόχρονα....πχ:

 

<!DOCTYPE actors

[

<!ELEMENT actors (name?, gender)*>

<!ELEMENT name (#PCDATA)>

<!ELEMENT gender ("M"|"F")>

]

 

Θέλω δηλαδή το element gender να παίρνει ή τιμή "M" ή τιμή "F", αλλά ο xml validator "χτυπάει" λάθος σ' εκείνη τη γραμμή. Τί πρέπει να κάνω;

 

Και μια τελευταία ερώτηση: αν ορίσω το στοιχείο name σαν προαιρετικό με το ερωτηματικό (?) τότε θα πρέπει να βάλω ερωτηματικό και εδώ:

<!ELEMENT name (#PCDATA)?>

 

Ευχαριστώ για το χρόνο σας...τώρα αρχίζω να μαθαίνω τους κανόνες DTD και όπου έψαξα δυστυχώς δεν βρήκα απάντηση στα ερωτήματά μου:whistle:

Δημοσ.

Μέσα στο DTD η μορφή πρέπει να είναι πάντα ως εξης

 

<!ATTLIST element-name attribute-name attribute-type default-value>

 

πχ <!ATTLIST actors genre (M|F)>

 

Προσοχη ομως, αυτο στο attribute list, δηλ μετα την δήλωση των elements. Θα δηλώσεις κανονικά τα elements όπως τα έχεις και μετά που θα δηλώνεις τα attributes εκεί θα το διαχωρίσεις να παίρνει μονο αυτες τις τιμές.

 

Εδώ όλα: http://www.w3schools.com/DTD/dtd_attributes.asp

 

Υ.Γ Στην δεύτερη ερώτηση σου, οχι το ? το βάζεις μόνο όταν το δηλώνεις σαν παιδί άλλου κόμβου. Οταν εξηγεις τι είναι (πχ PCDATA) δε το χρειάζεσαι.

 

 

σρυ το σωστο ειναι <!ATTLIST actors genre (M|F)> ειχα αφησει κατα λαθος μεσα κατι ακομα.

Δημοσ.

Σ' ευχαριστώ πολύ για την απάντησή σου! Αν όμως εγώ θέλω αυτό το "genre" να είναι οπωσδήποτε ELEMENT και όχι Attribute, πώς θα το κάνω? Όλα τα elements δηλαδή παίρνουν μόνο #PCDATA σαν τύπο;

Δημοσ.

Το PCDATA σημαίνει ουσιαστικά text, κάτι πρέπει να περιέχουν και αυτά. Τώρα αν θέλεις το ίδιο το element να εχει μια απο 2 τιμες δεν ξερω αν γίνεται.

 

<!ELEMENT note (#PCDATA|to|from|header|message)*>

 

αυτη ειναι μια γενικη μορφη αλλα αν καταλαβα εσυ θελεις το pcdata να είναι είτε Μ ειτε F. Πρέπει να το ψάξεις και αλλο, εγω δε βρηκα κατι.

  • 2 εβδομάδες αργότερα...
  • 2 εβδομάδες αργότερα...
Δημοσ.
Βρήκες τελικά λύση φίλε μου?

 

Ναι τη βρήκα! Σ' ευχαριστώ κιόλας! Δυστυχώς ο μόνος διαθέσιμος τύπος δεδομένων γα τα elements είναι το #PCDATA. Δεν υπάρχουν δηλαδή άλλοι τύποι, πχ διακριτοί "a" or "b" όσο κι αν έψαξα στο ίντερνετ, ειδικά στο W3schools....

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...