Ποιοι χαρακτήρες πρέπει να αποφεύγονται στα έγγραφα XML ή πού μπορώ να βρω έναν τέτοιο κατάλογο;
Αν χρησιμοποιήσετε μια κατάλληλη κλάση ή βιβλιοθήκη, θα κάνουν τη διαφυγή για εσάς. Πολλά προβλήματα XML προκαλούνται από τη συνένωση συμβολοσειρών.
Υπάρχουν μόνο πέντε:
" "
' '
< <
> >
& &
Η αποφυγή χαρακτήρων εξαρτάται από το πού χρησιμοποιείται ο ειδικός χαρακτήρας.
Τα παραδείγματα μπορούν να επικυρωθούν στην W3C Markup Validation Service.
Ο ασφαλής τρόπος είναι η διαφυγή και των πέντε χαρακτήρων στο κείμενο, ωστόσο, οι τρεις χαρακτήρες "
, '
και >
δεν χρειάζεται να διαφυγούν στο κείμενο:
<?xml version="1.0"?>
<valid>"'></valid>
Ο ασφαλής τρόπος είναι να αποφεύγετε και τους πέντε χαρακτήρες στα χαρακτηριστικά, ωστόσο, ο χαρακτήρας >
δεν χρειάζεται να αποφεύγεται στα χαρακτηριστικά:
<?xml version="1.0"?>
<valid attribute=">"/>
Ο χαρακτήρας '
δεν χρειάζεται να διαφύγει σε χαρακτηριστικά εάν τα εισαγωγικά είναι "
:
<?xml version="1.0"?>
<valid attribute="'"/>
Ομοίως, ο χαρακτήρας "
δεν χρειάζεται να αποφεύγεται σε χαρακτηριστικά εάν τα εισαγωγικά είναι '
:
<?xml version="1.0"?>
<valid attribute='"'/>
Και οι 5 ειδικοί χαρακτήρες δεν πρέπει να αποφεύγονται στα σχόλια:
<?xml version="1.0"?>
<valid>
<!-- "'<>& -->
</valid>
Και οι 5 ειδικοί χαρακτήρες δεν πρέπει να αποφεύγονται σε τμήματα CDATA:
<?xml version="1.0"?>
<valid>
<![CDATA["'<>&]]>
</valid>
Και οι 5 ειδικοί χαρακτήρες δεν πρέπει να αποφεύγονται στις εντολές επεξεργασίας XML:
<?xml version="1.0"?>
<?process <"'&> ?>
<valid/>
Η HTML έχει το δικό της σύνολο κωδικών διαφυγής που καλύπτουν πολύ περισσότερους χαρακτήρες.
Ίσως αυτό να βοηθήσει:
Λίστα αναφορών οντοτήτων χαρακτήρων XML και HTML:
Στα έγγραφα SGML, HTML και XML, το λογικές δομές γνωστές ως character δεδομένα και τιμές χαρακτηριστικών αποτελούνται από ακολουθίες χαρακτήρων, στις οποίες κάθε χαρακτήρας μπορεί να εκδηλωθεί άμεσα (αναπαριστώντας τον εαυτό του), ή μπορεί να είναι αναπαριστάται από μια σειρά χαρακτήρων που ονομάζεται αναφορά χαρακτήρων, εκ των οποίων υπάρχουν δύο τύποι: ένας αριθμητικός αναφορά χαρακτήρων και ένας χαρακτήρας αναφορά οντότητας. Αυτό το άρθρο απαριθμεί τις αναφορές οντοτήτων χαρακτήρων που είναι έγκυρες σε έγγραφα HTML και XML.
Το εν λόγω άρθρο παραθέτει τις ακόλουθες πέντε προκαθορισμένες οντότητες XML:
quot "
amp &
apos '
lt <
gt >
εκτός από τους κοινώς γνωστούς πέντε χαρακτήρες [<, >, &, ", '] θα απέφευγα επίσης τον κάθετο χαρακτήρα tab (0x0B). Είναι έγκυρος UTF-8, αλλά όχι έγκυρη XML 1.0, και ακόμη και πολλές βιβλιοθήκες (συμπεριλαμβανομένης της libxml2) τον παραλείπουν και βγάζουν σιωπηλά άκυρη XML.