Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

Îåêßíçóå áðü ôï ìÝëïò Παναγιώτης Καναβός. Τελευταία δημοσίευση από το μέλος tedman στις 22-11-2004, 15:44. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-10-2004, 10:10 254

    Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

    Ο Dare Obasanjo, ο δημιουργός του RSS Bandit, περιγράφει πότε έχει νόημα να χρησιμοποιήσει κάποιος XML στο άρθρο του The XML Litmus Test: Understanding When and Why to Use XML. Η κεντρική ιδέα δίνεται στο παρακάτω απόσπασμα:

    XML is the appropriate tool for the job if the following criteria are satisfied by choosing XML as the data representation format for a given application.

    1.      there is a need to interoperate across multiple software platforms

    2.      one or more of the off-the-shelf tools for dealing with XML can be leveraged when producing or consuming the data

    3.      parsing performance is not critical

    4.      the content is not primarily binary content such as a music or image file

    5.      the content does not contain control characters or any other characters that are illegal in XML

    If the expected usage scenario does not satisfy most or all of the above criteria then it doesn't make much sense to use XML as the data representation format for the situation in question.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-10-2004, 20:17 286 σε απάντηση της 254

    Re: Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

    και προσθέτω, άν τα data πρέπει να είναι σε μορφή αναγνώσιμη από άνθρωπο ή αν πρέπει να υπάρχει δυνατότητα επεξεργασίας τους χωρίς εξειδικευμένη εφαρμογή.
    Marios Margaritis
    Software Architect & IT Consultant
    theWorks
  •  17-10-2004, 23:42 296 σε απάντηση της 286

    Re: Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

    Οποιοδήποτε text format είναι αναγνώσιμο από τον άνθρωπο και μπορεί να επεξεργαστεί χωρίς ειδική εφαρμογή. Ακόμα και ένα απλό CSV ή το format ενός .ini αρχείου αρκούν.
        Αντιθέτως, το XML format κάνει δυσκολότερη τόσο την ανάγνωση όσο κυρίως το parsing. Σε αυτό αναφέρεται ο κανόνας #2 one or more of the off-the-shelf tools for dealing with XML can be leveraged when producing or consuming the data. 
        Η χρήση XML και ενός parser μας γλυτώνει από τη μισή δουλειά που απαιτείται για τη χρήση ενός text αρχείου, το parsing. Αρκεί βέβαια η ταχύτητα να μην είναι απαίτηση. Έτσι μένει η άλλη μισή δουλειά, να γραφεί το αρχείο. Άν δεν υπάρχει κάποιο εργαλείο, η XML απαιτεί περισσότερο γράψιμο και προσοχή τα tags να ταιριάζουν, να έχουν το ίδιο case κλπ


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  21-10-2004, 10:35 337 σε απάντηση της 296

    Re: Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

    Λυπάμαι θα διαφωνήσω, το ini έχει πεθάνει πάνω από 2 χρόνια δεν φτάνει για να καταχωρηθούν δομημένες πληροφορίες, και ναι ξεκίνησε να καλύψει την ίδια ανάγκη αναγνωσιμότητας, τώρα όμως έχει αντικατασταθεί από την σαφώς ανώτερη xml τεχνολογία. Σε παραπέμπω στα aplicationname.exe.config καθώς και στα web.config σαν τα πιο κοινά παραδείγματα αλλά όχι και τα μόνα.
    Marios Margaritis
    Software Architect & IT Consultant
    theWorks
  •  21-10-2004, 12:40 341 σε απάντηση της 337

    Re: Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

        SadΜάλλον έπρεπε να βρω άλλο παράδειγμα αντί τα .ini. Αναφερόμουνα στο ότι η επεξεργασία από τον άνθρωπο δεν είναι λόγος για να επιλέξει κανείς την XML ως text format, μάλλον το αντίθετο. Ούτε αναφέρομαι στο αν το αρχείο πρέπει να είναι σε binary ή text format. Απλά λέω ότι αν είναι να χρησιμοποιηθεί ένα text format, η επιλογή της XML δεν ταιριάζει αν το αρχείο προορίζεται για επεξεργασία από άνθρωπο χωρίς εργαλεία.
        Με την XML είμαι υποχρεωμένος να βρώ ή να φτιάξω τη σωστή σύνταξη και μετά να γράψω σωστά τα tags. Χωρίς εργαλεία θα πρέπει να πετύχω σωστά το Schema και μετά να γράψω και τα αρχεία με το χέρι προσέχοντας tags, whitespace. Αυτό θα πάρει πολύ περισσότερο χρόνο από ότι αν έγραφα τα data σε ένα πολύ πιο απλό text format.
        Τα config αρχεία δεν ανήκουν σε αυτή την κατηγορία γιατί γράφονται/διαβάζονται από την ίδια την εφαρμογή ή κάποιο άλλο εργαλείο. Απλά τα ανέφερα σαν παράδειγμα σύνταξης λίγο πιο περίπλοκο από το CSV, όχι σαν παράδειγμα χρήσης XML.

        Ελπίζω το παρακάτω παράδειγμα να είναι σαφέστερο. Στη C# χρησιμοποιείται ένα format XML για τη δημιουργία σχολίων μέσα στον κώδικα. Στη Java από παλιά χρησιμοποείται ένα απλούστερο text format.

    Αν έγραφα σε Java θα έγραφα κάτι σαν:
    /*
    @remark: 
       Check this, check that
    And don't forget the other
    */

    Στη C# κάτι σαν
    /*
    <Remark>  Check this, check that
    <para>And don't forget the other</para>
    </remark>
    */
    Το λάθος case το έβαλα επίτηδες

    Και δεν είμαι σίγουρος ότι το indent θα το καταλάβει. Επειδή όμως υπάρχουν εργαλεία που ενσωματώνουν τα comments στο Intellisense, τα χρησιμοποιώ. Επίσης, με το NDoc φτιάχνω και το help file που θέλω εύκολα. Αλλά το να γράψω το κείμενο είναι σκέτος μπελάς.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-11-2004, 15:44 505 σε απάντηση της 254

    Re: Πότε έχει νόημα να χρησιμοποιήσει κανείς XML?

    Μην ξεχνάμε βεβαίως και τις παρακάτω περιπτώσεις που:

    Καλείσαι να κινηθείς στα πλαίσια που κάποιος άλλος προδιαγράφει για σένα. Στην περίπτωση αυτή η XML είναι κατ'ανάγκη appropriate, άσχετα αν πιστεύεις το αντίθετο. Τέτοιες περιπτώσεις μπορεί να είναι και έμμεσης φύσης πχ. αν οι προδιαγραφές σου είναι να χρησιμοποιήσεις απαραιτήτως web services.

    Το database layer σου είναι ήδη XML (file based ή ακόμα και XML DB) επομένως δεν είναι ούτε περισσότερος χρόνος για την μετατροπή απο και πρός XML αλλα ούτε και παραπάνω προγραμματιστική προσπάθεια. Φυσικά υπόκειται στον κανόνα (3).

    . . . I didn't know it was impossible when I did it.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems