Philipp Hasenfratz: Ein erster Prototyp zum testen - Komponenten-Beschreibungen

Beitrag lesen

Halihallo Thomas

Input.xml
<component>
   <class name="v1" />
   <class name="v2" extends="v1"/>
   <class name="v3" extends="v2"/>
   <class name="v21" extends="v1"/>
   <class name="v31" extends="v21"/>
</component>

Dein Doc.xml schaut aber anders aus:
<class name="DocParser">
   <method restriction="public" name="parseTree">
      <in>
         <item type="instance" class="XML.DOM.Document">DOMDocument</item>
      </in>
   </method>
</class>

<class name="DocComponent" extends="XML.DOM.Document">

</class>

Hier verweist eine Klasse nicht auf eine andere Klassen, sonder nur auf eine Methode einer Klasse.

Ich kann beim besten Willen nicht sehen, aufgrund welcher Information du dies folgerst.

Oder: z.B. es gibt öfters Klassen die ein "extends="XML.DOM.Element"" haben, aber es gibt keine Klasse mit einem Namen "XML.DOM.Element". Das selbe ist mit extends="XML.DOM.NodeList.

Aha, ja, das war eine kleine Inkonsistenz im Datenmodell, welche ich mit
<external_component> und <external_class> umgehen werde. Die referenzierten Klassen
gehören nicht zur Komponente, die Dokumentiert werden soll, sondern zu einer anderen
Komponente, die ich mit <external_*> abbilden (nur den Komponentenname und -Klassen;
die Doku soll die andere Komponente (XML.DOM in diesem Falle) nicht auch noch umfassen,
deshalb sind das nur "Querverweise" und Informationen, die für den Index gebraucht
werden) werde. Aber wie kommst du auf "Methoden einer Klasse"? - XML.DOM.Document und
-Element sind Klassen der Komponente XML.DOM.

Sprich, mir scheint deine doc.xml etwas inkonsistent zu sein um daraus ein Inhaltsverzeichniss generieren zu können. Es gibt keine Querverweise die man nutzen könnte.

In der vorliegenden Version hast du recht. Entschuldigung, dass ich die neue Version
nicht genannt habe:

<library>
   <component name="DocComponent">
      ... <!-- das alte -->
   </component>
   <external_component name="XML.DOM">
      <external_class name="XML.DOM.Document" extends="XML.DOM.Node"></external_class>
      <external_class name="XML.DOM.Element" extends="XML.DOM.Node"></external_class>
      <external_class name="XML.DOM.NodeList" extends="XML.DOM.Node"></external_class>
      <external_class name="XML.DOM.Node"></external_class>
   </external_component>
</library>

Optional external_component mit Attribut src um eine externe Ressource ggf. einzulesen.

Viele Grüsse

Philipp

0 43

Klassenbeschreibungen

Philipp Hasenfratz
  • projektverwaltung
  1. 0

    Klassenbeschreibungen - Beispiele? - Vorlagen?

    Philipp Hasenfratz
    1. 0
      Simon Reinhardt
      1. 0
        Philipp Hasenfratz
  2. 0
    Andreas Korthaus
    1. 0
      Philipp Hasenfratz
  3. 0
    Philipp Hasenfratz
    1. 0
      Simon Reinhardt
      1. 0
        Martin Speiser
  4. 0
    Martin Speiser
    1. 0
      Philipp Hasenfratz
      1. 0
        Martin Speiser
        1. 0
          Philipp Hasenfratz
      2. 0
        Simon Reinhardt
        1. 0
          Philipp Hasenfratz
  5. 0

    Ein erster Prototyp zum testen - Komponenten-Beschreibungen

    Philipp Hasenfratz
    • perl
    1. 0
      Simon Reinhardt
      1. 0
        Philipp Hasenfratz
        1. 0

          Status

          Philipp Hasenfratz
          1. 0
            Simon Reinhardt
            1. 0
              Philipp Hasenfratz
              1. 0
                Simon Reinhardt
                1. 0
                  Philipp Hasenfratz
      2. 0

        XSLT Tranformierung der Componenten-XML-Datei

        Philipp Hasenfratz
        • xsl
        1. 0
          Thomas J.S.
          1. 0
            Philipp Hasenfratz
            1. 0
              Thomas J.S.
              1. 0
                Philipp Hasenfratz
                1. 0
                  Thomas J.S.
    2. 0
      Thomas J.S.
      1. 0
        Philipp Hasenfratz
      2. 0
        Simon Reinhardt
        1. 0
          Thomas J.S.
        2. 0
          Philipp Hasenfratz
          1. 0
            Thomas J.S.
            1. 0
              Philipp Hasenfratz
              1. 0
                Thomas J.S.
                1. 0
                  Philipp Hasenfratz
                  1. 0
                    Thomas J.S.
                    1. 0
                      Philipp Hasenfratz
                      1. 0
                        Thomas J.S.
                        1. 0
                          Philipp Hasenfratz
  6. 0
    Philipp Hasenfratz