Programm übel XML konfigurierbar machen?



  • Hab mal ne grundlegen Frage zu XML zur Konfiguration?

    Nehmen wir an ich möchte eine Applikation entwerfen, welche durch XML statt ini etc. konfigurierbar ist. Muss/kann ich mit XSLT die Regeln und aufbau einer XML konfiguration datei definieren, und diese als basis für nen XML Parser verwenden. Wie läuft das ganze?



  • schau dir mal tinyxml an



  • Deiner Beschreibung nach ist XSLT nicht das, was du möchtest.
    XSLT wandelt Xml-Dateien in andere Formate um, du möchtest aber ein Programm konfigurieren, ne.

    Den Aufbau und die Regeln der Xml-Konfigurationsdatei definierst du selbst, da du ja auch selbst die Applikation entwickelst. Einem Xml-Parser sollte es genügen, das du nirgends z.B. ein abschließendes Tag vergisst, d.h. das die Xml-Konfigurationsdatei wohlgeformt ist.

    Aus welcher Programmiersprache soll die Applikation entstehen? Für die meisten Sprachen gibt es Xml-Apis, bzw. Parser, die du benutzen kannst, z.B. JDOM für Java, etc.

    Gruß,
    X.



  • XMLer schrieb:

    Für die meisten Sprachen gibt es Xml-Apis, bzw. Parser, die du benutzen kannst, z.B. JDOM für Java, etc.

    wenn's etwas high-leveliger sein darf: http://xstream.codehaus.org/
    damit kannste deine ganzen settings in eine xml-datei 'streamem'. arbeitet wie ObjectOutput- und ObjectInputStream, nur dass als dateiformat XML verwendet wird.
    🙂



  • Devel... schrieb:

    Programm übel XML konfigurierbar machen?

    😃 Echt übel diese ganzen XML Sachen. :p





  • du suchst wahrscheinlich nach XML-Schema, damit kannst du die Struktur genau definieren und validieren: http://de.wikipedia.org/wiki/XML_Schema



  • Neben TinyXML gibt es auch folgende Klassen (aus der irrlicht toolchain ausgekoppelt):
    http://www.ambiera.com/irrxml/

    Download:
    http://prdownloads.sourceforge.net/irrlicht/irrxml-1.2.zip?download

    Das verwende ich beispielsweise für die Parametrisierung bei Games.

    Einfaches Beispiel:

    #include "..\src\irrXML.h"
    using namespace irr;
    using namespace io;
    #include <iostream>
    #include "conio.h"
    using namespace std;
    
    #include <string> // we use STL strings to store data in this example
    
    int main()
    {
    	IrrXMLReader* xml = createIrrXMLReader("config.xml");
    
    	// strings for storing the data we want to get out of the file
    	std::string modelFile;
    	std::string messageText;
    	std::string caption;
    
    	// parse the file until end reached
    	while(xml && xml->read())
    	{
    		switch(xml->getNodeType())
    		{
    		case EXN_TEXT:
    			// in this xml file, the only text which occurs is the messageText
    			messageText = xml->getNodeData();
    			break;
    		case EXN_ELEMENT:
    			{
    				if (!strcmp("startUpModel", xml->getNodeName()))
    					modelFile = xml->getAttributeValue("file");
    				else
    				if (!strcmp("messageText", xml->getNodeName()))
    					caption = xml->getAttributeValue("caption");
    			}
    			break;
    		}
    	}
    
        cout << "startUpModel: " << modelFile << endl;
        cout << "messageText:  " << caption   << endl;
    
    	// delete the xml parser after usage
    	delete xml;
    	getch();
    	return 0;
    }
    

    XML file:

    <?xml version="1.0"?>
    <config>
       <!-- This is a config file -->
       <startUpModel file="dwarf.dea" />
       <messageText caption="Irrlicht Engine Mesh Viewer">
         Welcome to the Mesh Viewer of the &quot;Irrlicht Engine&quot;.
       </messageText>
    </config>
    


  • xml-fan schrieb:

    du suchst wahrscheinlich nach XML-Schema, damit kannst du die Struktur genau definieren und validieren: http://de.wikipedia.org/wiki/XML_Schema

    Nö. Sucht er nicht. :p



  • Devel... schrieb:

    ...die Regeln und aufbau einer XML konfiguration datei definieren...

    meine aussage bezog sich darauf, sry wenns nicht passt


Anmelden zum Antworten