Announcement

Collapse
No announcement yet.

BOM in XML abbilden - Hierarchien?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BOM in XML abbilden - Hierarchien?

    Hallo,

    habe folgendes Problem.
    Ich sollte eine Art Stückliste (BOM = Bill of Material) in ein XML Schema gießen.

    Ist eine XML-Instanz in der Form überhaupt sinnig?
    Code:
    <bom>
      <material>
        <eigenschaft_1>xxx</eigenschaft_1>
        <eigenschaft_2>xxx</eigenschaft_2>
        <stueckliste>
          <material>
             <eigenschaft_1>xxx</eigenschaft_1>
             <eigenschaft_2>xxx</eigenschaft_2>
             <stueckliste>
                <material>
                    <eigenschaft_1>xxx</eigenschaft_1>
                    <eigenschaft_2>xxx</eigenschaft_2>
                </material>
                <material>
                   <eigenschaft_1>xxx</eigenschaft_1>
                   <eigenschaft_2>xxx</eigenschaft_2>
               </material>
             </stueckliste>
          </material>
          <material>
             <eigenschaft_1>xxx</eigenschaft_1>
             <eigenschaft_2>xxx</eigenschaft_2>
          </material>
          <material>
             <eigenschaft_1>xxx</eigenschaft_1>
             <eigenschaft_2>xxx</eigenschaft_2>
          </material>
        </stueckliste>
      </material>
    </bom
    Macht es überhaupt Sinn die XML-Datei für eine Stückliste in der Form aufzuziehen, da ich im Prinzip eine beliebig tiefe Verschachtelung dadurch erhalten kann?

    Die Frage zielt auch auf eine mögliche Weiterverarbeitung des XMLs ab. Muß ich mich bei solch einem Desgin verbiegen, um später an benötigte Informationen zu gelangen bzw. die Hierarchie aufzulösen. (aufgrund der Verschachtelung)

    Oder sollte besser eine flachere Struktur favorisiert werden und die entsprechenden Informationen über Parant-Material usw. im XML-abgelegt werden.

    Vielen Dank für eure Hinweise und Tips.

    Viele Grüße
    Stefan

  • #2
    Beliebig tiefe Verschachtelung ist mit der W3C XML Schemasprache möglich. Das programmatische Verarbeiten erfolgt dann üblicherweise über Rekursion, aber je nach verwendeter Abfragesprache wie XPath reicht auch //material oder DOM getElementsByTagName("material").
    Was in deinem Beispiel eventuell schwierig ist, ist das Benutzen eines numerischen Index in Elementnamen (also eigenschaft_1, eigenschaft_2), das klappt so nur, wenn die Anzahl der Elemente beim Erstellen des Schemas bekannt ist und sich nicht ändert. Besser ist vermutlich eine Liste
    Code:
    <material>
       <eigenschafts-liste>
          <eigenschaft>...</eigenschaft>
          <eigenschaft>...</eigenschaft>
      </eigenschafts-liste>
    </material>

    Comment


    • #3
      Hallo Martin,

      vielen Dank für deine Antwort.

      Ein numerischer Index ist nicht erforderlich. Habe es in meinem Beispiel nur verwendet, um aufzuzeigen, dass eben mehrere Eigenschaften am Material auftreten können.

      D.h. mit hierarchischen (rekursiven) Strukturen fange ich mir nicht irgendwelche Nachteile in einer späteren Verarbeitung ein.

      Ein andere Überlegung war eben, dass ich die Struktur eventuell flach gestalte und mit entsprechenden Attributen wie "Vater-Material" auf das übergeordnete Material verweise und somit die Struktur der Stückliste abbilden soll.

      Viele Grüße
      Stefan

      Comment

      Working...
      X