XML frage



  • wann nimmt man case a and wann case b?
    
    case a:
    -------
    <kanal id="1">
    	<name>led1</name>
    </kanal>
    
    case b:
    -------
    <kanal id="1" name="led1"/>
    

    bye



  • Das Thema gabs hier auch schon öfter.

    Ergebnis: Geschmackssache.



  • Kann man allgemein nicht beurteilen, da gibt es verschiedene Vor-und Nachteile.
    Vorteil von case b ist die kürzere Schreibweise und damit weniger (unnötiger) Overhead.
    Nachteil von case b ist, dass man die hier genutzten Elemente (da sie als Attribute modelliert sind) nicht mehr so einfach erweitern kann. Soll heißen, wenn z.B. das Element "name" irgendwann auch aus mehreren Kindelementen bestehen soll, dann wäre case a wesentlich besser.
    Außerdem macht es generell keinen Sinn sehr viele Elemente einfach in den Vaterknoten als Attribute zu packen. Das macht man normal nur mit so Dingen wie eben dem "id" Element.

    D.h. letztlich bestimmt die Semantik was sinnvoller ist. Ich persönlich würde hier case a bevorzugen, ohne Ahnung zu haben, was du überhaupt abbilden willst 😉



  • Nachteil von case b ist, dass man die hier genutzten Elemente (da sie als Attribute modelliert sind) nicht mehr so einfach erweitern kann. Soll heißen, wenn z.B. das Element "name" irgendwann auch aus mehreren Kindelementen bestehen soll, dann wäre case a wesentlich besser.

    meinst du das so? in dem fall ist doch beides prima?

    case a:
    -------
    <kanal id="1">
        <name>led1</name>
        <typ>input</typ>
    </kanal>
    
    case b:
    -------
    <kanal id="1" name="led1" typ="input"/>
    


  • auch so verstehe, du meinst sowas? das hier für case b umzusetzten ist blöd, gar nicht möglich?

    case a:
    -------
    <kanal id="1">
        <name>
            <name_internal>led1</name_internal>
            <name_external>LED1</name_external>
        </name>
        <typ>input</typ>
    </kanal>
    
    case b:
    -------
    <kanal id="1" name="led1" typ="input"/>
    

    bye



  • Je nach Anwendung würde ich sogar ganz auf Attribute verzichten, da die sich nicht sonderlich schön in einen Baum einfügen lassen.

    <kanal>
        <id>1</id>
        <name>led1</name>
    </kanal>
    

Anmelden zum Antworten