Anton: /XML/XHML/XSTL - Statische Texte speichern

Guten Morgen Forum,

seit Monaten zebreche ich mir den Kopf wie ich am besten statische Texte speichere. Dabei möchte wo immer möglich Logik, Design, Daten und Programmierung trennen.

Zuvor war alles in einer DB. Nun möchte ich aber kein HTML in der DB haben. Das ist einfach nicht gut. Was ist wenn man den DB Inhalt später für ein C++ Programm nutzen will oder dergleichen? Also habe ich für die AGB alles aus der DB geholt und davon eine XHTML Seite gemacht.

Die Seiten bestehen größtenteils aus Smarty Schablonen. In diese werden dann Werte aus der DB eingefügt.
Ich möchte lange Texte aber auch mit Infoboxes, Title, etc formatieren können.

Was ist die beste Lösung dafür? XML ? Zum 450sten Mal rein in die DB, raus aus der DB. Langsam habe ich genug davon. Was gehört überhaupt in die DB ? In einem anderen Forum sagt jemand, Daten die sich nur selten ändern. Das ist relativ.

Aber wenn das das einzige Kriterium ist, dann ist eine Trennung von Logik <html> Tags und Daten (AGB) ja nicht gewährleistet.

Nehmen wir mal die AGB. Wie soll man soetwas in der DB speichern. Die AGB bestehen ja aus Überschiften. Eine Tabelle AGB. Oder gehören die in eine Tabelle Texte ? Hatte mittlerweile so ziemlich alles.

Wer weiß Rat?

  1. Hallo

    Was ist die beste Lösung dafür? XML ? Zum 450sten Mal rein in die DB, raus aus der DB. Langsam habe ich genug davon. Was gehört überhaupt in die DB ? In einem anderen Forum sagt jemand, Daten die sich nur selten ändern. Das ist relativ.

    Hmm ich seh das anders, wenn ich daten habe, die sich nicht oft ändern, dann brauch ich die nicht in die datenbank schreiben (meistens).
    Ich würd eher daten da rein schreiben die sich oft ändern.

    Ich hab mal ne zeitlang mit folgendem rumgemacht, du hinterlegst du inhalte in der datenbank, aber die ganze seite wird nur bei änderung einmal per knopfdruck und templates generiert.

    Bert

    --
    E492: Not an editor command: Wq
    ln -s /dev/brain
    1. Ich hab mal ne zeitlang mit folgendem rumgemacht, du hinterlegst du inhalte in der datenbank, aber die ganze seite wird nur bei änderung einmal per knopfdruck und templates generiert.

      Da hörst sich auch nicht so richtig professionell an.
      Gibt es da nichts anderes ?

      1. Hi Leute

        Ich hab mal ne zeitlang mit folgendem rumgemacht, du hinterlegst du inhalte in der datenbank, aber die ganze seite wird nur bei änderung einmal per knopfdruck und templates generiert.

        Da hörst sich auch nicht so richtig professionell an.

        Wenn man den Knopfdruck automatisiert und das ganze 'Caching' nennt klingt es doch schon richtig professionell, oder? Egal wie es klingt, es soll einfach und flexibel sein, wenn ich das richtig verstehe.

        Gibt es da nichts anderes ?

        Doch: XML beispielsweise. Ich würde die AGB als XHTML- oder als TXT-Dokument speichern und bei Bedarf mit dem Layout verknüpfen. Kann mir jemand vielleicht einen guten Grund nennen, weshalb die AGB in die DB soll? Ich sehe keinen.

        FG

        Tom2

        1. Doch: XML beispielsweise. Ich würde die AGB als XHTML- oder als TXT-Dokument speichern und bei Bedarf mit dem Layout verknüpfen. Kann mir jemand vielleicht einen guten Grund nennen, weshalb die AGB in die DB soll? Ich sehe keinen.

          Weil es Daten sind? Eine DB ist doch Teil des Informationssystems des Unternehmens. Aber mittlerweile bin ich total verwirrt.

          Aber mal zu deiner Idee. Momentan sind die Daten ja in einer xhtml Smarty Schablone. Also so lassen?

          Wie wäre es mit reinem XML Und dann mit XSTL transoformieren ?
          Dann könnte ich mich damit in XSTL reinarbeiten. Wäre toll hinsichtlich meines Studiums. Nur wie mache ich das dann mit dem Menü der Webseite und dem Ringsrum um die AGB ? Die Seite soll so aussehen wie die anderen(die würde ich dann ebenfalls nach xml konvertieren). Kann doch in ener XML Datei keine Links angeben.

          Und wenn ich die Daten in XML speichere, wie ist es dann mit der Idee die ich habe? Also den Text trotzdem noch mit xhtml tags formatieren?
          Das würde doch über diese namespaces gehen oder?

          1. Hallo,

            Kann mir jemand vielleicht einen guten Grund nennen, weshalb die AGB in die DB soll? Ich sehe keinen.
            Weil es Daten sind? Eine DB ist doch Teil des Informationssystems des Unternehmens. Aber mittlerweile bin ich total verwirrt.

            Ja, _Teil_ des Informationssystems.

            Man kann in einer relationalen DB allerdings das _gesamte_ Unternehmen abbilden. Das heißt dann trotzdem nicht, dass _alle_ Informationen _nur_ in den _Feldern_ der RDB-Tabellen stehen müssen. In den Feldern können auch _Pfade_ ins Dateisystem des/der Server/s stehen oder URIs zu Ressourcen.

            Du musst zunächst den Begriff Daten etwas spezifizieren. Natürlich sind Dokumente auch Daten. Aber sie enthalten auch wiederum Elemente, Formate und Strukturen. Sie sind also _nicht_ die gleiche Art Daten, wie z.B. ein Kundenname, der ein Element für sich darstellt, welches höchstens noch unterschiedlich formatiert ausgegeben werden kann. Entweder Du speicherst in den Feldern der RDB-Tabellen die _Elemente_ der Dokumente, deren Formate und deren Platz in der Dokumentstruktur einzeln ab, was Wahnsinn wäre, oder Du verweist in der Datenbank auf die gespeicherten Quellen des Dokuments.

            Zu Deinen AGB:
            Wenn diese hauptsächlich für den Internetauftritt Verwendung finden sollen, dann speichere sie als HTML (XHTML) und verbinde sie zur Darstellung mit einer CSS-Ressource.

            Wenn sie auch anderweitig verwendet werden sollen, speichere sie in einem allgemeineren Dokument-Format (XML) und erstelle daraus, je nach Anforderung, durch Transformierung und Formatierung HTML, PDF, TeX, GIF ...

            Speichern würde ich die Quellen (HTML, XHTML, CSS, XML, XSL, XSLT ...) in Dateien des Dateisystems und in der Datenbank würde ich nur auf diese Quellen verweisen.

            Je nach Programmiersprache, die das Parsen bzw. das Ausliefern des HTML/CSS übernimmt _kann_ es sich lohnen, die Quellen als serialisierte Objekte in die Datenbank zu legen.

            Der Vorteil, Dokumente, oder Verweise darauf, in eine Datenbank zu legen, liegt darin, dass man eine Datenbank leicht durchsuchen kann und somit den Dokumenten Suchbegriffe zuordnen kann, unter denen sie gefunden werden sollen.[1] Außerdem bietet die Datenbank, zusammen mit einem Intranet-System, eine Möglichkeit, wichtige Dokumente, die ggf. auf mehreren Servern verteilt liegen, unternehmensweit zur Verfügung zu stellen.

            viele Grüße

            Axel

            [1] Was aber nichts mit einer Textsuche innerhalb der Inhalte der Dokumente zu tun hat. Die zu implementieren ist schwieriger.

            1. Hallo,

              vielen Dank für deine ausführliche, gut gemeinten Ratschläge.

              Du musst zunächst den Begriff Daten etwas spezifizieren. Natürlich sind Dokumente auch Daten. Aber sie enthalten auch wiederum Elemente, Formate und Strukturen. Sie sind also _nicht_ die gleiche Art Daten, wie z.B. ein Kundenname, der ein Element für sich darstellt, welches höchstens noch unterschiedlich formatiert ausgegeben werden kann. Entweder Du speicherst in den Feldern der RDB-Tabellen die _Elemente_ der Dokumente, deren Formate und deren Platz in der Dokumentstruktur einzeln ab, was Wahnsinn wäre,

              Ja genau so hatte ich es, also die Paragraphen und Überschriften, etc  einzeln abgepeichert. Für die Reihenfolge der Elemente eine eigene Spalte. Das wird mir nun alles zu viel und ich blicke nicht mehr durch die Tabellen durch. Deswegen muss es nun zukunftssicher geändert werden. Na ja, ich hatte mir alles selber beigebracht ... Aus Fehlern lernt man. :)

              oder Du verweist in der Datenbank auf die gespeicherten Quellen des Dokuments.

              Gute Idee.

              Wenn diese hauptsächlich für den Internetauftritt Verwendung finden sollen, dann speichere sie als HTML (XHTML) und verbinde sie zur Darstellung mit einer CSS-Ressource.

              Ja so ist es ja momentan. Aber wer weiß wozu ich die Daten später noch gebrauchen werde. XML fände ich schon cool, auch des Lerneffektes wegen.

              Habe es nun einigermaßen Begriffe. Also die AGB kommen nicht mehr rein. Nun habe ich noch folgende Restprobleme/Restverständnisschwierigkeiten.

              Angenommen es gibt eine xml datei agb.xml. Darin stehen die AGB.
              Jetzt ist das "Problem", dass ich auf meiner Seite ein breadcrumb Menü nutze. Also so etwas:

              Home>Produkte>Zahnbürsten>OralB

              Diese menüs werden Dynamisch estellt(mit Hilfe von php/smarty).

              Also wie geht das Ich habe eine Seite. Diese verlinkt auf agb.xml. agb.xml hat eine Referenz auf die XSTL Datei. Diese XSL Datei sieht ungefähr so aus, wie in diesem Tutorial(simples Beispiel)?

              http://www.w3schools.com/xsl/xsl_transformation.asp

              Nun kenne ich mich noch nicht mit xsl aus, aber ich sehe, dass die xsl Datei so eine Art Template/Schablone ist.
              Richtig?

              Wie bekomme ich aber nun dynamische Inhalte in diese Schablone. Meine Seite ist 6 sprachig, das menü ist dynamisch, abhängig von Sprache gibt es verschiedene Menüs. Habe ich mit XML/XSL noch die Möglichkeit php zu nutzen oder ist dann alles statisch.

              Bin leicht verwirrt. Tschuldigung.

              1. Hallo,

                Nun habe ich noch folgende Restprobleme/Restverständnisschwierigkeiten.

                Also wie geht das Ich habe eine Seite. Diese verlinkt auf agb.xml.

                Das wird nicht funktionieren. Der Link muss auf eine Ressource verweisen, die dem Browser HTML (XHTML) liefert, welches ein Parser aus agb.xml und z.B. agb.xsl erzeugt hat. Nicht alle Browser haben selbst einen XML/XSLT-Parser.

                agb.xml hat eine Referenz auf die XSTL Datei. Diese XSL Datei

                ^Was ist XSTL? Wenn Du es jetzt nicht schon mehrmals so geschrieben hättest, würde ich nicht fragen.

                sieht ungefähr so aus, wie in diesem Tutorial(simples Beispiel)?
                http://www.w3schools.com/xsl/xsl_transformation.asp
                Nun kenne ich mich noch nicht mit xsl aus, aber ich sehe, dass die xsl Datei so eine Art Template/Schablone ist.
                Richtig?

                Ja. http://de.selfhtml.org/xml/darstellung/xslgrundlagen.htm

                Wie bekomme ich aber nun dynamische Inhalte in diese Schablone. Meine Seite ist 6 sprachig, das menü ist dynamisch, abhängig von Sprache gibt es verschiedene Menüs. Habe ich mit XML/XSL noch die Möglichkeit php zu nutzen oder ist dann alles statisch.

                Inhalte stehen im XML. Im XSL stehen Formatierungs- und Transformationsanweisungen. Ein Parser muss beides zusammenbringen und ein darstellbares Dokument daraus erstellen. In welcher Programmiersprache der geschrieben ist, ist im Prinzip egal.

                http://de.php.net/manual/en/ref.xsl.php

                viele Grüße

                Axel

                1. Hallo,

                  ^Was ist XSTL? Wenn Du es jetzt nicht schon mehrmals so geschrieben hättest, würde ich nicht fragen.

                  XSLT ist "Extensible Styleseet Language Transformation", XSLT ist die richtige Bezeichnung, denn XSL steht eigentlich für XSL-FO.

                  Grüße
                  Thomas

                  1. Hallo,

                    ^Was ist XSTL?
                    XSLT ist "Extensible Styleseet Language Transformation"

                    Ja, das wusste ich. Deswegen fragte ich, was XSTL ist.

                    viele Grüße ;-))

                    Axel

                    1. Hallo,

                      ^Was ist XSTL?
                      XSLT ist "Extensible Styleseet Language Transformation"
                      Ja, das wusste ich. Deswegen fragte ich, was XSTL ist.

                      Dann andersum: XSLT ist das was viele für XSL halten und XSL ist das von dem wenige wissen, dass es eigentlich XSL-FO ist. ;-)

                      Grüße
                      Thomas

                      1. Hallo.

                        ^Was ist XSTL?
                        XSLT ist "Extensible Styleseet Language Transformation"
                        Ja, das wusste ich. Deswegen fragte ich, was XSTL ist.

                        Dann andersum: XSLT ist das was viele für XSL halten und XSL ist das von dem wenige wissen, dass es eigentlich XSL-FO ist. ;-)

                        Auch das beantwortet aber die Frage nicht.
                        MfG, at

                        1. Hallo,

                          Auch das beantwortet aber die Frage nicht.

                          Dann sucht bitte im Googel oder sonst wo z.B. im Archiv.
                          Oder kauft das Buch http://www.amazon.de/exec/obidos/ASIN/3772360203/

                          Oder liest die Spezifikation.
                          ----------------------------------------------------------
                          XSLT, eine Sprache zur Transformation von XML-Dokumenten in andere XML-Dokumente.

                          XSLT ist entwickelt worden, um als ein Bestandteil von XSL, einer Stylesheet-Sprache für XML, benutzt zu werden. Zusätzlich zu XSLT enthält XSL ein XML-Vokabular, um eine Formatierung zu spezifizieren. XSL spezifiziert das Layout eines XML-Dokuments, um unter Benutzung von XSLT zu beschreiben, wie das Dokument in ein anderes XML-Dokument, welches das Formatierungsvokabular benutzt, transformiert wird.

                          XSLT ist auch entworfen worden, um unabhängig von XSL benutzt zu werden. Jedoch ist XSLT nicht als vollständig universelle XML-Transformationssprache gedacht. Vielmehr ist sie primär für die Arten von Transformationen entwickelt worden, die benötigt werden, wenn XSLT als Teil von XSL benutzt wird.
                          -------------------------------------------------------------

                          Grüße
                          Thomas

                          1. Hallo.

                            Oder liest die Spezifikation.

                            Dann zeige mir die richtige.
                            MfG, at

                            1. Hallo,

                              Oder liest die Spezifikation.

                              Bitte sehr:
                              http://www.w3.org/TR/xslt http://xml.klute-thiemann.de/w3c-de/REC-xslt-20020318/

                              Grüße
                              Thomas

                              1. Hallo.

                                Bitte sehr:

                                Danke, und jetzt tue mir bitte noch den Gefallen und blättere ein paar Beiträge zurück -- zumindest bis https://forum.selfhtml.org/?t=91202&m=548522 -- und lies die Abkürzungen, die ein "X" enthalten noch einmal besonders sorgfältig. Vielleicht fällt dir dann auf, dass du einem Missverständnis aufgesessen bist, das ich hier nicht fortsetzen möchte.
                                MfG, at

                                1. Hallo,

                                  Danke, und jetzt tue mir bitte noch den Gefallen und blättere ein paar Beiträge zurück -- zumindest bis https://forum.selfhtml.org/?t=91202&m=548522 -- und lies die Abkürzungen, die ein "X" enthalten noch einmal besonders sorgfältig. Vielleicht fällt dir dann auf, dass du einem Missverständnis aufgesessen bist, das ich hier nicht fortsetzen möchte.

                                  Ja.

                                  Was nur bedeutet, dass ich offensichtlich keinen Kopf für solche Nebensächlichkeiten wie Tippfehler habe, wenn die Konnotationen das Thema mehr als genügend beschreiben.
                                  Natürlich ändert das nichst daran, dass du hier Recht hast.

                                  Grüße
                                  Thomas

                                  PS: sollte ich jetzt behaupten, dass XSTL "eXtrem Sorgfältig Tippende Leute" bedeutet?

                                  1. Hallo.

                                    Was nur bedeutet, dass ich offensichtlich keinen Kopf für solche Nebensächlichkeiten wie Tippfehler habe, wenn die Konnotationen das Thema mehr als genügend beschreiben.

                                    Ob es ein Tippfehler gewesen sein sollte, war ja zunächst die Frage. Und diese Intention hattest du derart selbstverständlich ignoriert, dass ich einfach nachhaken musste.

                                    PS: sollte ich jetzt behaupten, dass XSTL "eXtrem Sorgfältig Tippende Leute" bedeutet?

                                    Meinst du, das glaubte dir nach dieser Frage noch jemand? Mir genügt es jedenfalss zu wissen, dass dir die Abkürzung nichts sagt und damit also wohl tatsächlich auf einen Tippfehler zurückzuführen ist.
                                    MfG, at

                      2. Hallo,

                        *g* Nochmal:
                        Meine Frage war:
                        Was ist XSTL?

                        Alle Erläuterungen zu XSLT stellen mich deshalb nicht zufrieden ;-))

                        viele Grüße

                        Axel

          2. Hi Anton

            Kann mir jemand vielleicht einen guten Grund nennen, weshalb die AGB in die DB soll? Ich sehe keinen.

            Weil es Daten sind? Eine DB ist doch Teil des Informationssystems des Unternehmens.

            Eine DB ist ein Mittel um Daten zu speichern und diese diversen Programmen einfach zur Verfügung zu stellen. Relationale Datenbanksysteme sind sehr gut geeignet um tabellarische Daten zu speichern, also Daten, die immer dieselbe Struktur haben.
            Eine AGB ist aber ein Textdokument, welches du eher mit einem Buch vergleichen kannst: Es hat Kapitel, die unterschiedlich umfangreich sind und je nach Art des Buches enthällt es auch noch einen Index oder einen Anhang, vielleicht sogar ein Vorwort. Solche Daten, bei denen die Struktur nicht bekannt ist, würde ich persönlich möglichst nicht in einer Datenbank speichern. Als ganzes Objekt vielleicht, jedoch ist es meiner Ansicht nach den Aufwand nicht wert: Eine viel effizientere Speichermethode bietet dir dein altbewährtes Dateisystem. Abfragen auf das Dateisystem sind sehr viel schneller da das System viel einfacher ist. Zudem liegt unter jedem Datenbanksystem auch ein Dateisystem. Ein Datenbanksystem für Daten mit nicht regelmässigen, sich wiederholenden Daten zu verwenden ist also Overkill.
            Ich denke, dass wenn du deine Daten zu normalisieren versuchst, dann wirst du schon auf solche stossen, für die du keine geeigneten Strukturen findest.

            Aber mittlerweile bin ich total verwirrt.

            Sind wir das nicht alle ein bisschen? :-)

            Aber mal zu deiner Idee. Momentan sind die Daten ja in einer xhtml Smarty Schablone. Also so lassen?

            Die AGB in einer Schablone?

            Wie wäre es mit reinem XML Und dann mit XSTL transoformieren ?

            Genau das meine ich. Als XML-Format nimmst du XHTML (Strict?), denn das entspricht wohl ziemlich genau deinen Anforderungen. Mit XSTL kannst du dann Inhaltsverzeichnisse generieren oder dein komplettes Layout einfügen.

            Dann könnte ich mich damit in XSTL reinarbeiten.

            Das wäre bestimmt nicht verkehrt.

            Nur wie mache ich das dann mit dem Menü der Webseite und dem Ringsrum um die AGB? [...] Kann doch in ener XML Datei keine Links angeben.

            Doch, doch, das ist kein Problem.

            Und wenn ich die Daten in XML speichere, wie ist es dann mit der Idee die ich habe? Also den Text trotzdem noch mit xhtml tags formatieren?

            Du legst einfach XHTML als Standard-Format für deine unveränderlichen Daten fest, wodurch du nur noch sehr wenig transformieren musst.

            Du kannst mir ja mal eine Mail schreiben, dann sende ich dir ein paar Beispieldateien, die ich beim Einarbeiten in XML geschrieben habe.

            FG

            Tom2

            1. Hallo Tom2,

              Ich denke, dass wenn du deine Daten zu normalisieren versuchst, dann wirst du schon auf solche stossen, für die du keine geeigneten Strukturen findest.

              Wie meinst du das genau ?

              Die AGB in einer Schablone?

              Ja, also ich meine die ganze Seite. Die soll ja so aussehen wie die anderen Seiten. Mit Schablone meine ich das Drumherum um die AGB Infos(traue mich schon gar nicht mehr Daten zu sagen,wie also nennen? :)).

              Wie wäre es mit reinem XML Und dann mit XSTL transoformieren ?

              Genau das meine ich. Als XML-Format nimmst du XHTML (Strict?), denn das entspricht wohl ziemlich genau deinen Anforderungen. Mit XSTL kannst du dann Inhaltsverzeichnisse generieren oder dein komplettes Layout einfügen.

              Das Menü ist aber in der DB und wird dynamisch generiert. Wie bekomme ich das in die xsl Dateien ?

              Nur wie mache ich das dann mit dem Menü der Webseite und dem Ringsrum um die AGB? [...] Kann doch in ener XML Datei keine Links angeben.

              Doch, doch, das ist kein Problem.

              Kein Problem in des XSL Datei. ???

              Du legst einfach XHTML als Standard-Format für deine unveränderlichen Daten fest, wodurch du nur noch sehr wenig transformieren musst.

              Ich kann XHTML mit XSTL nutzen? Dann heißt die Datei aber trotzem irgendwas.xsl ?

              Du kannst mir ja mal eine Mail schreiben, dann sende ich dir ein paar Beispieldateien, die ich beim Einarbeiten in XML geschrieben habe.

              Mache ich gerne. Danke

        2. Hallo,

          Wenn man den Knopfdruck automatisiert und das ganze 'Caching' nennt klingt es doch schon richtig professionell, oder?

          Mich wundert es nicht, dass die Leute alle Windows kaufen, weil es so schön bunt blinkt und Professional heisst und ~ aussieht.

          Bert

          --
          E492: Not an editor command: Wq
          ln -s /dev/brain
  2. Hallo,

    Die Seiten bestehen größtenteils aus Smarty Schablonen.

    Also PHP.

    Was ist die beste Lösung dafür? XML ? Zum 450sten Mal rein in die DB, raus aus der DB. Langsam habe ich genug davon. Was gehört überhaupt in die DB ? In einem anderen Forum sagt jemand, Daten die sich nur selten ändern. Das ist relativ.

    Du kannst alles was du möchtest in die DB speichern, wie es dir am besten passt, allerdings halte ich es für unsinnig XML-Dateien in einer DB zu speichern (es sei denn es handelt sich um eine XML-DB).

    Nehmen wir mal die AGB. Wie soll man soetwas in der DB speichern. Die AGB bestehen ja aus Überschiften. Eine Tabelle AGB. Oder gehören die in eine Tabelle Texte ? Hatte mittlerweile so ziemlich alles.

    Warum nicht eine Tabelle "AGB"? Wenn es nur Überschriften und Text sind, reichen ja zwei Spalten.

    Du kannst immerhin auch aus der DB-Daten eine XML-Datei generieren, aber in diesem Fall stellt sich die Frage wozu?
    Es ist im Grunde auch egal ob du jetzt in die DB speicherst, oder in eine XML-Datei, wenn sich die Daten oft ändern (was bei einer AGB eigentlich nicht der fall sein sollte) wirst du so oder so auch zum 450. Mal die Änderungen irgendwo speichern müssen.

    Außerdem es wird sich alles eher danach richten, wie die Änderungen an den Daten vor sich gehen, wenn du (oder wer auch immer die Daten ändert) keine Umgebung für XML-Editierung hast, erübrigt sich die Frage nach XML, denn da wirds umständlich jedes mal eine XML-Datei mit PHP zu zerlegen um sie dann wieder zusammenkleben zu müssen.

    Und wenn du eh schon mit dem komischen Smarty arbeitetes, kannst du ja gleicht ein ordentliches Caching einrichten.

    Grüße
    Thomas

    1. Du kannst alles was du möchtest in die DB speichern, wie es dir am besten passt, allerdings halte ich es für unsinnig XML-Dateien in einer DB zu speichern (es sei denn es handelt sich um eine XML-DB).

      Nein, also der Kernpunkt wurde nicht verstanden.
      Wären es reine Texte für die AGB dann bräuchte ich ja wirklich nur 2 Spalten. Überschrift und Body. Da ich aber im Bodytext Abkürzungen mit <acronym><title> formatieren will hätte ich dann ja tags im DB Feld. Das möchte ich nicht. Das ist der Hauptpunkt.

      Außerdem es wird sich alles eher danach richten, wie die Änderungen an den Daten vor sich gehen, wenn du (oder wer auch immer die Daten ändert) keine Umgebung für XML-Editierung hast, erübrigt sich die Frage nach XML, denn da wirds umständlich jedes mal eine XML-Datei mit PHP zu zerlegen um sie dann wieder zusammenkleben zu müssen.

      Ich bin der einzige der die Daten formatiert.

      Und wenn du eh schon mit dem komischen Smarty arbeitetes, kannst du ja gleicht ein ordentliches Caching einrichten.

      Was ist daran bitte sehr kommisch? Meinst du templates an sich oder Smarty ? Hast du eine Alternative zu templates ?

      1. Hallo,

        Wären es reine Texte für die AGB dann bräuchte ich ja wirklich nur 2 Spalten. Überschrift und Body. Da ich aber im Bodytext Abkürzungen mit <acronym><title> formatieren will hätte ich dann ja tags im DB Feld. Das möchte ich nicht. Das ist der Hauptpunkt.

        Aufgrund von https://forum.selfhtml.org/?t=91202&m=548433 würde ich dir zu XML-Raten.

        Außerdem es wird sich alles eher danach richten, wie die Änderungen an den Daten vor sich gehen, wenn du (oder wer auch immer die Daten ändert) keine Umgebung für XML-Editierung hast, erübrigt sich die Frage nach XML, denn da wirds umständlich jedes mal eine XML-Datei mit PHP zu zerlegen um sie dann wieder zusammenkleben zu müssen.

        Ich bin der einzige der die Daten formatiert.

        Dann passt es.

        Und wenn du eh schon mit dem komischen Smarty arbeitetes, kannst du ja gleicht ein ordentliches Caching einrichten.

        Was ist daran bitte sehr kommisch? Meinst du templates an sich oder Smarty ? Hast du eine Alternative zu templates ?

        Das war eher so gemeint, dass man sich heutzutage gerne möglichst komplizierter machst als es eigentlich notwendig ist.
        Zu deiner Frage in https://forum.selfhtml.org/?t=91202&m=548383:
        Du kannst das Ergebnis der XML/XSL-Ttansformation als (X)HTML abspeichern und mit deinen Schablonen dieses dann für die Aufbau der Seite benützen, wobei deine Schablonen das "Rundherum" enthalten können.

        Ich empfehle es nicht, dass du deine Daten in XHTML schreibst und haltest (wenn doch, dann brauchst du weder eine DB noch sonst was wirklich), denn so hast du keine Trennung zwischen Layout und Inhalt.

        Gehe ich davon aus, dass du in der Tat keine DB für die AGB verwenden willst, wirst du nicht um eine kleine XML-Umgebung herumkommen. Bei PHP kannst du z.B. libxml und libxslt installieren (oder Sablotron, oder ...etc.)
        Allerdings nur für _eine_ Seite ist das auch wieder ein Overhead.

        Ich würde sagen, du versucht deine Vorgaben und deine Wünsche zu analysieren und herauszufinden was du wirklich brauchst und möchtest.
        XML würde sich bei viele Gelegenheiten bezahlt machen, z.B. wenn du die AGB auch als PDF anbieten willst/musst, da muss du die Daten nur einmal schreiben und mit verschiedenen XSL-Dateien die verschiedene ausgabeformate erzeugen.
        Willst du XML/XSL(T) lernen, wäre das sicher eine gute Gelegenheit dazu. Aber du muss eben die nötige Zeit (Softwareumgebung für die Transformation schaffen etc,) und Lernaufwand in deine Analyse miteinbeziehen.

        Grüße
        Thomas

        1. Aufgrund von https://forum.selfhtml.org/?t=91202&m=548433 würde ich dir zu XML-Raten.

          OK, XML wird es sein.

          Das war eher so gemeint, dass man sich heutzutage gerne möglichst komplizierter machst als es eigentlich notwendig ist.

          Allerdings, davon kann ich ein Lied singen.

          Zu deiner Frage in https://forum.selfhtml.org/?t=91202&m=548383:
          Du kannst das Ergebnis der XML/XSL-Ttansformation als (X)HTML abspeichern und mit deinen Schablonen dieses dann für die Aufbau der Seite benützen, wobei deine Schablonen das "Rundherum" enthalten können.

          Das verstehe ich aber immer noch nicht. Also da sind 2 Dateien. Eine xml und ein xsl Datei. Die erzeugte xhtml Datei wird zur Laufzeit erzeugt, wird sie also nur ausgeliefert? Oder gibt es eine wirkliche xhtml Datei im Dateisystem ?

          Sollte der zweite Fall zutreffen: Die xhtml wäre dann die Smarty Schablone mit Variablen wie wie z. B. {$topic}, etc? Da wird dann enstprechend der Sprache "news", "Neuigkeiten", etc eingefügt? Ist es möglich eine xhtml aus 2 verschiedenen xml Dateien herzustellen?

          Gehe ich davon aus, dass du in der Tat keine DB für die AGB verwenden willst, wirst du nicht um eine kleine XML-Umgebung herumkommen. Bei PHP kannst du z.B. libxml und libxslt installieren (oder Sablotron, oder ...etc.)
          Allerdings nur für _eine_ Seite ist das auch wieder ein Overhead.

          Nein, nein. Das wären schon mehrere. Aber wofür bräuchte ich dann libxml oder libxslt?

          1. Hallo,

            Zu deiner Frage in https://forum.selfhtml.org/?t=91202&m=548383:
            Du kannst das Ergebnis der XML/XSL-Ttansformation als (X)HTML abspeichern und mit deinen Schablonen dieses dann für die Aufbau der Seite benützen, wobei deine Schablonen das "Rundherum" enthalten können.

            Das verstehe ich aber immer noch nicht. Also da sind 2 Dateien. Eine xml und ein xsl Datei. Die erzeugte xhtml Datei wird zur Laufzeit erzeugt, wird sie also nur ausgeliefert? Oder gibt es eine wirkliche xhtml Datei im Dateisystem ?

            Ob du das Ergebnis der Transformation an den Browser weiterleitest, ohne es irgendwo zu speichern, oder ob du es erst z.B. in einem Cache-Verzeichnis ablegst hängt von dir ab.
            Wenn du die Transformation serverseitig machst, wovon ich ausgehe, kannst du die zweite Variante verwenden.
            Dann hast du eine Datei in Dateisystem und du kannst auf diese mit deinen Schablonen zugreifen.
            Es ist natürlich auch möglich, dass die Transformation erst zur Laufzeit, d.h. beim Aufruf einer Seite stattfinden. In dem Fall müssten deine Schablonen diese Tranformation auslösen und das Ergebnis ohne zwischenspeichern in die dazustellende Seite einfügen.
            Aber ob das bei dir geht, hängt davon ab ob Smarty sowas unterstützt/ermöglicht bzw. wie gut du Programmieren kannst.

            Sollte der zweite Fall zutreffen: Die xhtml wäre dann die Smarty Schablone mit Variablen wie wie z. B. {$topic}, etc? Da wird dann enstprechend der Sprache "news", "Neuigkeiten", etc eingefügt? Ist es möglich eine xhtml aus 2 verschiedenen xml Dateien herzustellen?

            Wozu sind denn sonst deine Schablonen gut, wenn sie nicht in der Lage sind genau das zu tun (aus mehreren Datei [-Fragmenten] eine Datei zusammenzustellen)? ;-)
            Das ist an sich auch der Zweck von Smarty: eine "Template/Presentation Framework".

            Allerdings nur für _eine_ Seite ist das auch wieder ein Overhead.

            Nein, nein. Das wären schon mehrere. Aber wofür bräuchte ich dann libxml oder libxslt?

            Mit Hilfe dieser beiden Softwaremodule könntest du die XML/XSL-Transformation durchführen und das Egebnis im Dateisystem speichern. Aber das war nur ein Tipp, bei PHP hast du dazu auch andere Möglichkeiten.

            Grüße
            Thomas

            1. Hallo Thomas

              Ob du das Ergebnis der Transformation an den Browser weiterleitest, ohne es irgendwo zu speichern, oder ob du es erst z.B. in einem Cache-Verzeichnis ablegst hängt von dir ab.
              Wenn du die Transformation serverseitig machst, wovon ich ausgehe, kannst du die zweite Variante verwenden.

              OK.

              Dann hast du eine Datei in Dateisystem und du kannst auf diese mit deinen Schablonen zugreifen.

              Mit den Schablonen ? Zu meinst mit der Schablonenklasse?

              Es ist natürlich auch möglich, dass die Transformation erst zur Laufzeit, d.h. beim Aufruf einer Seite stattfinden. In dem Fall müssten deine Schablonen diese Tranformation auslösen und das Ergebnis ohne zwischenspeichern in die dazustellende Seite einfügen.
              Aber ob das bei dir geht, hängt davon ab ob Smarty sowas unterstützt/ermöglicht bzw. wie gut du Programmieren kannst.

              Du scheinst von Smarty nicht viel zu halten. Wie baust du denn Seiten die gleichzeitzig mit xml _und_ DB arbeiten ?

              Wozu sind denn sonst deine Schablonen gut, wenn sie nicht in der Lage sind genau das zu tun (aus mehreren Datei [-Fragmenten] eine Datei zusammenzustellen)? ;-)

              Ja, aber ich meinte aus 2 xml Dateien. Unabhängig von Schablonen.

              Mit Hilfe dieser beiden Softwaremodule könntest du die XML/XSL-Transformation durchführen und das Egebnis im Dateisystem speichern.

              Aha, verstehe!

              Aber das war nur ein Tipp, bei PHP hast du dazu auch andere Möglichkeiten.

              Zum Bleistift ? Angenommen ich möchte nur mit php arbeiten.

              1. Hallo,

                Dann hast du eine Datei in Dateisystem und du kannst auf diese mit deinen Schablonen zugreifen.

                Mit den Schablonen ? Zu meinst mit der Schablonenklasse?

                Ich kenne Smarty sogesehen überhaupt nicht, also _ich_ kann es dir nicht sagen was es kann.

                Du scheinst von Smarty nicht viel zu halten. Wie baust du denn Seiten die gleichzeitzig mit xml _und_ DB arbeiten ?

                Um von Smarty etwas zu halten, müsste ich es um einiges beser kennen.
                Aber um auf deine Frage zu antworten: mit einem XML-Framework (Java und JSP basierend) wo ich über eigene Kontrolldateien Daten aus allen möglichen Quellen (DB (d.h. über SQL-Statements), XML-Files (lokal oder remote) etc. etc.) hole, daraus ein einziges XML generiere und dieses dann mit XSL transformiere.

                Wozu sind denn sonst deine Schablonen gut, wenn sie nicht in der Lage sind genau das zu tun (aus mehreren Datei [-Fragmenten] eine Datei zusammenzustellen)? ;-)

                Ja, aber ich meinte aus 2 xml Dateien. Unabhängig von Schablonen.

                Ich möchte dir nicht zu nahe treten, aber die frage ist hier: bist du gut genug für Smarty, oder: ist Smarty gut genug für dich? (wie gesagt, ich kenne Smarty kaum)

                Aber das war nur ein Tipp, bei PHP hast du dazu auch andere Möglichkeiten.

                Zum Bleistift ? Angenommen ich möchte nur mit php arbeiten.

                Du kannst bei PHP auf die DOM XML, oder auf die SimpleXML Funktionen zurückreifen. Du wirst aber sicher nicht darum herumkommen dir eine Umgebung zu Programmieren in dem du auch aus mehreren XML-Dateie eine XML-Datei generierst und dann diese transformierst. Ein kleines Framework also (deshalb dachte ich Smapry könnte dich da unterstützen).

                Grüße
                Thomas

  3. Hallo,

    Was gehört überhaupt in die DB?

    Ich nehme an, Du meinst ein RDBMS, also ein Relationales Datenbank Management System? Das ist für Daten in Tabellen gedacht, wobei die Tabellen in Beziehung zueinander stehen. Dort hinein gehören Daten wie:
    Tabelle Kunden:
    ID, Kundenname, Kundenanschrift ...

    Tabelle Artikel:
    ID, Artikelname, Artikelpreis ...

    Tabelle Bestellungen:
    ID, Kunden-ID, Datum, Artikel-ID, Menge ...

    Deine AGB sind ein Dokument. In Textfeldern von RDBMS kannst Du maximal Textbausteine für Dokumente ablegen.

    Um ein Dokument zu beschreiben, benötigst Du eine Dokumentbeschreibungssprache. HTML kann soetwas sein. HTML ist allerdings speziell für HTML-Dokumente gedacht. Diese werden üblicherweise auf dem Bildschirm in Browsern angezeigt. Wenn das Dokument in unterschiedlichen Formaten und für unterschiedliche Medien (Bildschirm, Druck ...) ausgegeben werden soll, muss die Dokumentbeschreibungssprache sehr allgemein gehalten sein. XML ist eine solche sehr allgemein gehaltene Dokumentbeschreibungssprache. Die Aufbereitung für die Ausgabe erfolgt dann durch einen Parser unter Zuhilfenahme von Formatierungs- und/oder Transformationsanweisungen aus XSL bzw. XSLT. Es entsteht dann, je nach Anforderung z.B. ein HTML-Dokument oder ein anderes Bildschirm- bzw. Print-Format.

    Die Dokumentdaten (XML) und Formate (XSL) können natürlich auch wieder in Datenbanken gehalten werden. Hierfür sind Text-Felder in Tabellen eines RDBMS aber nicht gedacht. In einem solchen Feld kann aber z.B. der Pfad zur XML- bzw. XSL-Datei stehen.

    Um ganze Dokumente in Datenbanken zu halten, betrachtet man das Dokument als Objekt und hält die serialisierte Form dieses Objektes in einem Objekt-Feld (BLOB) der Datenbank oder nutzt eine Objekt-Datenbank.

    viele Grüße

    Axel