throw new XML.Exn("root element was not <ibex>", XML.Exn.SCHEMA, getLine(), getCol());
if (c.getAttrLen() != 0)
throw new XML.Exn("root element must not have attributes", XML.Exn.SCHEMA, getLine(), getCol());
- if (c.getUri("ui") == null) c.addUri("ui", "ibex://ui");
- if (c.getUri("") == null) c.addUri("", initial_uri);
+ if (c.getUri("ui") == null || "".equals(c.getUri("ui"))) c.addUri("ui", "ibex://ui");
+ if (c.getUri("") == null || "".equals(c.getUri(""))) c.addUri("", initial_uri);
state = STATE_IN_ROOT_NODE;
return;
case STATE_IN_ROOT_NODE:
}
Hash urimap = c.getUriMap();
- t.urikeys = new String[urimap.size()];
- t.urivals = new String[urimap.size()];
+ t.urikeys = new String[urimap.size() - (urimap.get("ui") == null ? 0 : 1)];
+ t.urivals = new String[urimap.size() - (urimap.get("ui") == null ? 0 : 1)];
Enumeration uriEnumeration = urimap.keys();
int ii = 0;
while(uriEnumeration.hasMoreElements()) {
String key = (String)uriEnumeration.nextElement();
+ if (key.equals("ui")) continue;
String val = (String)urimap.get(key);
t.urikeys[ii] = key;
- if (val.charAt(0) == '.') val = val.substring(1);
+ if (val.length() > 0 && val.charAt(0) == '.') val = val.substring(1);
t.urivals[ii] = val;
ii++;
}