Hallo Zusammen, hat jemand von euch Erfahrung mit dem Einsatz von XML auf einem ARM7? Nach einigem suchen hab ich ein paar Parser gefunden, die darauf vielleicht laufen könnten (expat,xmlparser,libxml2,tinyxml), aber wie sieht es mit der Geschwindigkeit aus, wäre der wohl schnell genug um ein per XML abgelegtes Menü auszulesen, und auch die dazugehörigen Werte? Und wie sieht das mit einer validierung aus, vor allem Geschwindigkeit bei einer Schema validierung, vielleicht per libxml2? Mir würde schon ein Wink in die Richtung reichen ob das möglich wäre, bzw komplett Aussichtslos ;) Danke schonmal für die Hilfe :) Grüße Buzzi
Ich hab ehrlich gesagt mit xml noch nichts gemacht aber ich denke mal, dass ein Arm7 damit auf keinen Fall überfordert sein sollte. Ein Menü besteht ja aus einer recht kleinen, selbst für den Menschen überschaubaren Anzahl von Punkten mit gewissen Eigenschaften. Sowas sollte in keinem Format ein Problem darstellen. Ich weiß natürlich nicht, wie die genannten XML-Implementationen sowas auflösen aber ich denke nicht, dass es ein Problem wäre.
Das XML an sich nichts aufregendes ist ist mir ja schon klar. Der ARM hat ja aber nur 16kb RAM, und da ist die Frage ob das genug ist für den Parser und die DOM Bäume die darin aufgebaut werden (falls der Parser denn DOM macht). Im Moment sieht es nach 4 XML Dokumenten aus, wobei nur 2 davon umfangreicher sein werden. Auch sollte der µc ja nicht nur mit XML parsen beschäftigt sein, sondern nebenbei noch andere Aufgaben erledigen. Grüße Buzzi
Ein sogenannter SAX-Parser sollte mit relativ wenig RAM auskommen. http://de.wikipedia.org/wiki/Simple_API_for_XML
XML? DOM-Bäume? Schema-Validierung? Auf einem Mikrocontroller mit 16 kB RAM? Das ist ja absurd. Wieso muss es denn XML sein, das von allen Dateiformaten dieser Welt am schlechtesten für einen Mikrocontroller geeignete? CSV oder YAML ist besser menschenlesbar, braucht weniger Speicher, und lässt sich mit ein paar Zeilen C interpretieren.
@Martin, das hatte ich mir auch schon gedacht, allerdings unterstützen die meisten Parser (die in C geschrieben sind) nur DOM... @Andreas: endlich springt mal einer auf meine provokative Fragestellung an ;) Die Sache ist; es geht um eine Machbarkeitsstudie, dabei sollen Daten aus einem Softwaresystem gewonnen werden (als XML) und auf den Mikrocontroller gebracht werden, und dort verarbeitet (angezeigt, verändert,...) werden. Schön wäre es natürlich auch die Sachen per XSLT z.B. zu html zu transformieren und auf einem embedded webserver zur Verfügung zu stellen. Da es so viele Möglichkeiten gibt muss eben ausgelotet werden, was davon realistisch ist. Und so wie es im Moment aussieht könnte ich schon glücklich sein wenn überhaupt _irgendein Parser auf dem Ding läuft. Das wird dann wohl die nächste zu tuende Sache werden, mal sehen wann ich dazu komme :) Grüße Buzzi
Ich würde mir gründlich überlegen ob es nicht prinzipiell möglich ist dem "Softwaresystem" ein anderes Datenformat beizubringen. Wenn ja, dann würde ich die µC-seitige Lösung sofort vergessen, weil sie mit einem Controller dieser Größe unrealistisch ist. Wenn du auf XML bestehst, nimm gleich was größeres mit Speicher im MB-Bereich, z.B. das Fox-Board. Zu XSLT: ich habe keine Ahnung wofür diese Sprache sinnvoll nutzbar ist - zur Transformation von XML ist sie es meiner Erfahrung nach nicht. Alleine angesichts der Tatsache dass XSLT selber gültiges XML ist sollten die Warnlichter mit der Aufschrift "overengineered" und "praxisfern" zu blinken anfangen. Bei mir haben sie das damals leider erst getan als ich es schon gelernt hatte.
@Andreas Schwarz, verfalle bitte nicht in den gleichen Fehler wie viele andere. Nur weil man das Konzept hinter einer Programmiersprache nicht verstanden hat muss man sie nicht gleich niedermachen. Das Hauptproblem bei XSLT ist, dass die meisten Leute nicht verstehen wie man diese beschreibende Sprache einsetzt. Man kann sich eben nur schwer vom prozeduralen Denken lösen. Wenn man das einmal geschafft hat kann man in XSLT in wenigen (ok zugegeben - XSLT ist chatty, also doch mehreren) Zeilen wahre Wunder mit strukturierten Daten vollbringen. Ich habe vorbedacht nicht "mit XML Dokumenten", sondern "strukturierten Daten" geschrieben, denn XSLT ist nicht auf XML beschränkt. Eine seiner Stärken. Zudem arbeiten moderne XSLT Prozessoren nicht mehr unbedingt mit DOM-Baeumen, viele setzen inzwischen auf das eventorientierte SAX. Abgesehen davon... Die LPC22xx haben ein externes Speicherinterface und können damit ausreichend RAM/ROM/FLASH verwalten. Das sollte sogar für einen XML Parser reichen. Vom Speed her ... sogar Linux läuft auf den LPC22xx in brauchbarer Geschwindigkeit. Aber XML, geschweige denn XSLT, ist für eine Menüsteuerung nun wirklich nicht nötig (aber zugegebenermaßen - Elegant).
Ich habe das Konzept von XSLT verstanden - das Konzept ist ja auch ziemlich offensichtlich. Es mag formal "elegant" sein, und vielleicht gibt es Anwendungsfälle wo es sinvoll einsetzabr ist, um XML in (X)HTML umzuwandeln ist es (nicht nur meiner Erfahrung nach) in der Praxis aber schlicht und einfach unbrauchbar, das selbe Problem lässt sich in einer Scriptsprache mit XML-Unterstützung mit sehr viel weniger Zeit- und Tippaufwand lösen.
Da steht das Stichwort: XML in (X)HTML Da muss ich dir recht geben; dafür eignet es sich definitiv "nur sehr bedingt".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.