Giter VIP home page Giter VIP logo

Comments (3)

jloehel avatar jloehel commented on August 31, 2024

Original comment by Thomas Schraitle (Bitbucket: tomschr, GitHub: tomschr)


Hallo Jürgen,

ich habe im Branch rng_schema. Damit angefangen ein Schema für das Zwischenformat zu erstellen:

Cool, dann hatten wir die selbe Idee. ;-))
Vielleicht können wir das unsere beiden Erkenntnisse zusammenführen.

Die Änderungen klingen für mich plausibel.

Das ist schön. :-)

Ich bin mir nachwievor noch nicht ganz im Klaren, was ein gute XML-Struktur ausmacht und worauf ich achten muss, daher sind Vorschläge sehr willkommen.

Eine gute XML-Struktur zu entwerfen kann manchmal schwierig werden.

Woran ich mich orientiere sind meist folgende Punkte:

  • Attribut vs. Element?

    Das war (früher?) immer ein großes Streitthema. Hing vermutlich mit der DTD zusammen, die nur in Attributen rudimentäre Datentypen erlaubt, in Elementen jedoch nicht. Mittlerweile ist es durch XSD und RNG nicht mehr so wichtig.
    Sind manche Informationen optional?

  • Maschine vs. Mensch?

    Manche machen einen Unterschied ob die XML-Struktur nur von Maschinen gelesen wird oder ob sie auch ein Mensch zu Gesicht bekommt. Ich denke trotzdem, irgendein Entwickler wird die Struktur dennoch lesen (müssen) um sinnvolle Verarbeitungen machen zu können.

  • Dokumentation vs. Markup?

    Eine XML-Struktur sollte möglichst so sprechende Namen haben, dass man den Sinn, Zweck und Inhalt erraten kann. Ohne irgendeine Referenz-Dokumentation gelesen zu haben. Das wäre der Idealfall, der aber sicherlich leider nicht immer möglich ist. Trotzdem kann man durch sinnvolle Benennung bereits viele Mehrdeutigkeiten und Ungenauigkeiten ausschließen.

  • Konsistenz und Wiederverwertung

    Kommen bestimmte Strukturen in anderen vor? In dem Fall kann man Dinge wiederverwerten. Das verhindert eine ausufernde Anzahl von Tags und man kann sich die Dinge auch besser merken.
    Des Weiteren ist es natürlich besser, wenn gleiches auch gleich benannt wird.

  • Explizites Markup vs. Implizites Markup

    Bevor man seine Namen entwirft, sollte man sich überlegen was man auszeichnen möchte. Soll z.B. eine Konto-Transaktion dargestellt werden, dann wäre ein erster Entwurf sowas: <transaction>withdrawal 2018 02 15 200.00 </transaction>.

    Das enthält noch sehr viel implizite Daten: der Typ der Transaktion, das Datum und der Wert. So eine Struktur lässt sich schlecht parsen, sortieren, vergleichen usw. Besser -- da leichter zugänglich -- wäre so eine:

<transaction type="withdrawal">
   <date>2018-02-15</date>
   <amount>200.00</amount>
</transaction>

Das soll erstmal nur eine kleine Inspiration sein. Ich habe von Elliotte Rusty Harold das Buch "Effective XML" (50 Specific Ways to Improve Your XML). Das kann ich nächste Woche gerne mitbringen.

from rng2doc.

jloehel avatar jloehel commented on August 31, 2024

Hallo Thomas,

ich habe im Branch rng_schema. Damit angefangen ein Schema für das Zwischenformat zu erstellen:
https://bitbucket.org/jloehel/rng2doc/src/72e9ae9d93d14f7b0b5e163197c760684e4f47e2/?at=feature%2Frng_schema

Die Änderungen klingen für mich plausibel. Ich bin mir nachwievor noch nicht ganz im Klaren, was ein gute XML-Struktur ausmacht und worauf ich achten muss, daher sind Vorschläge sehr willkommen.

from rng2doc.

jloehel avatar jloehel commented on August 31, 2024

Original comment by Thomas Schraitle (Bitbucket: tomschr, GitHub: tomschr)


See commit bc51215 in branch "feature/issue17-datastructure" for an idea about how the formalized structure of the RNG could look like.

from rng2doc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.