summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-08 03:22:01 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-08 12:29:44 +0100
commit752afa1c4c5caf59a3b510a7fae3a1995c4b5b02 (patch)
tree08c56a8b57aeab25fbfffc12bc78bad48ed3b1da
parent573a4ff44e0ae70a479637cd26de33e7568d7987 (diff)
downloadmsitools-752afa1c4c5caf59a3b510a7fae3a1995c4b5b02.tar.gz
msitools-752afa1c4c5caf59a3b510a7fae3a1995c4b5b02.tar.xz
msitools-752afa1c4c5caf59a3b510a7fae3a1995c4b5b02.zip
Allow multiple root elements in wxs
-rw-r--r--src/builder.vala15
-rw-r--r--src/wix.vala13
2 files changed, 12 insertions, 16 deletions
diff --git a/src/builder.vala b/src/builder.vala
index ef41d56..c29d357 100644
--- a/src/builder.vala
+++ b/src/builder.vala
@@ -18,9 +18,18 @@ namespace Wixl {
List<WixRoot> roots;
public void load_xml (string data) throws GLib.Error {
var doc = Xml.Parser.read_memory (data, data.length);
- var root = new WixRoot ();
- root.load_xml (doc);
- roots.append (root);
+
+ for (var child = doc->children; child != null; child = child->next) {
+ switch (child->type) {
+ case Xml.ElementType.ELEMENT_NODE:
+ if (child->name != "Wix")
+ warning ("unhandled node %s", child->name);
+ var root = new WixRoot ();
+ root.load (child);
+ roots.append (root);
+ break;
+ }
+ }
}
public G? find_element<G> (string Id) {
diff --git a/src/wix.vala b/src/wix.vala
index 50a53ad..d44c8af 100644
--- a/src/wix.vala
+++ b/src/wix.vala
@@ -469,19 +469,6 @@ namespace Wixl {
typeof (WixFragment),
});
}
-
- public string xmlns { get; set; }
-
- public WixRoot () {
- }
-
- public void load_xml (Xml.Doc *doc) throws Wixl.Error {
- var root = doc->children;
- load (root);
-
- if (root->ns != null)
- xmlns = root->ns->href;
- }
}
} // Wixl \ No newline at end of file