|
| 1 | +Ο τύπος **`IA5String`** (International Alphabet number 5) είναι ένας από τους βασικούς τύπους συμβολοσειρών χαρακτήρων (character string types) του ASN.1. Γενικά, είναι ισοδύναμος με το αλφάβητο ASCII. |
| 2 | + |
| 3 | +Η ανάθεση μιας αφηρημένης τιμής (abstract value) σε έναν τύπο στο ASN.1, συμπεριλαμβανομένου του `IA5String`, ακολουθεί έναν γενικό κανόνα: |
| 4 | + |
| 5 | +1. Το όνομα αναφοράς της τιμής πρέπει να ξεκινά με πεζό γράμμα (π.χ., `valuereference`). |
| 6 | +2. Ακολουθεί ο τύπος στον οποίο ανήκει η τιμή (πρέπει να ξεκινά με κεφαλαίο γράμμα, π.χ., `IA5String`). |
| 7 | +3. Χρησιμοποιείται το σύμβολο ανάθεσης **`::=`**. |
| 8 | +4. Ακολουθεί η ίδια η τιμή (`Value`). |
| 9 | + |
| 10 | +**Σημείωση:** Οι αφηρημένες τιμές που ορίζονται σε μια ASN.1 ενότητα **δεν κωδικοποιούνται ποτέ** για μετάδοση, αλλά χρησιμοποιούνται για τη βελτίωση της αναγνωσιμότητας σε περιορισμούς υποτύπων ή για τον καθορισμό προεπιλεγμένων τιμών. |
| 11 | + |
| 12 | +### Σύνταξη Τιμής IA5String |
| 13 | + |
| 14 | +Οι συμβολοσειρές χαρακτήρων (character strings) στο ASN.1, όπως ο `IA5String`, ορίζονται συνήθως μέσα σε διπλά εισαγωγικά (`"`). |
| 15 | + |
| 16 | +**1. Βασική Ανάθεση Συμβολοσειράς:** |
| 17 | + |
| 18 | +Μια βασική ανάθεση τιμής για τον τύπο `IA5String` μπορεί να μοιάζει με: |
| 19 | + |
| 20 | +```asn1 |
| 21 | +string IA5String ::= "string including ""double quotes""" |
| 22 | +-- αντιπροσωπεύει <<string including "double quotes">> |
| 23 | +``` |
| 24 | +Αν η συμβολοσειρά περιλαμβάνει διπλό εισαγωγικό, αυτό πρέπει να διπλασιαστεί μέσα στην τιμή. |
| 25 | + |
| 26 | +**2. Ανάθεση με μη Γραφικούς Χαρακτήρες:** |
| 27 | + |
| 28 | +Για τον τύπο `IA5String`, υπάρχει μια ειδική σύνταξη που επιτρέπει την αναφορά σε μη γραφικούς χαρακτήρες (control characters), χρησιμοποιώντας αγκύλες `{}` σε μορφή λίστας (`CharacterStringList`): |
| 29 | + |
| 30 | +* Αυτή η σύνταξη επιτρέπει την ανάμειξη (συνένωση) συμβολοσειρών σε διπλά εισαγωγικά και αναφορών σε χαρακτήρες. |
| 31 | +* Οι μη γραφικοί χαρακτήρες μπορούν να αναφέρονται είτε με καθορισμένες τιμές (που εισάγονται από την τυποποιημένη ενότητα **`ASN1-CHARACTER-MODULE`**) είτε μέσω της παραγωγής **`Tuple`**. |
| 32 | +* Η παραγωγή `Tuple` χρησιμοποιείται μόνο για τον τύπο `IA5String` και ορίζει χαρακτήρες με βάση τη θέση τους στη στήλη και τη σειρά (π.χ., `{TableColumn, TableRow}`). |
| 33 | + |
| 34 | +**Παράδειγμα** με χρήση εισαγόμενης αναφοράς χαρακτήρα: |
| 35 | +```asn1 |
| 36 | +ExampleIA5String DEFINITIONS ::= |
| 37 | +BEGIN |
| 38 | +IMPORTS cr FROM ASN1-CHARACTER-MODULE {joint-iso-itu-t |
| 39 | +asn1(1) specification(0) modules(0) iso10646(0)} ; |
| 40 | +two-lines IA5String ::= { "First line", cr, |
| 41 | +"Second line" } |
| 42 | +END |
| 43 | +``` |
| 44 | +Στο παραπάνω παράδειγμα, η τιμή `two-lines` περιέχει τον χαρακτήρα αλλαγής γραμμής (CR). |
0 commit comments