if(INCLUDE_ELEMENT.equals(next.getLocalName())) {
elem = (Element) next;
content = elem.getAttribute(CONTENT_ATTRIB);
ps = elem.getAttribute(PATH_ATTRIB);
if (ps == null || ps.length() == 0) {
throw new DatabaseConfigurationException("include element requires an attribute 'path' in collection configuration.");
}
if (content != null && content.length() != 0 && CONTENT_MIXED.equals(content)) {
mixedList.add(new NodePath(namespaces, ps, false));
} else {
includeList.add( new NodePath(namespaces, ps) );
}
} else if(EXCLUDE_INTERFACE.equals(next.getLocalName())) {
ps = ((Element) next).getAttribute(PATH_ATTRIB);
if (ps == null || ps.length() == 0) {
throw new DatabaseConfigurationException("exclude element requires an attribute 'path' in collection configuration.");
}
excludeList.add( new NodePath(namespaces, ps) );
} else if(PRESERVE_CONTENT_ELEMENT.equals(next.getLocalName())) {
ps = ((Element) next).getAttribute(PATH_ATTRIB);
if (ps == null || ps.length() == 0) {
throw new DatabaseConfigurationException("preserveContent element requires an attribute 'path' in collection configuration.");
}
preserveList.add( new NodePath(namespaces, ps) );
} else if(CREATE_ELEMENT.equals(next.getLocalName())) {
elem = (Element) next;
String name = elem.getAttribute(QNAME_ATTRIB);
if (name == null || name.length() == 0) {
throw new DatabaseConfigurationException("create element requires an attribute 'qname' in collection configuration.");
}
boolean isAttribute = false;
if (name.startsWith("@")) {
isAttribute = true;
name = name.substring(1);
}
final String prefix = QName.extractPrefix(name);
final String localName = QName.extractLocalName(name);
String namespaceURI = "";
if (prefix != null) {
namespaceURI = (String) namespaces.get(prefix);
if(namespaceURI == null) {
throw new DatabaseConfigurationException("No namespace defined for prefix: " + prefix +
" in index definition");
}
}
final QName qname = new QName(localName, namespaceURI, null);
if (isAttribute)