public class NamespaceResolverWithPrefixes extends NamespaceResolver {
protected String primaryPrefix = "";
protected String secondaryPrefix = "";
public void putPrimary(String ns1, String primaryNamespace) {
this.primaryPrefix = ns1;
put(ns1, primaryNamespace);
}
public String getPrimaryPrefix() {
return primaryPrefix;
}
public void putSecondary(String ns1, String secondaryNamespace) {
this.secondaryPrefix = ns1;
put(ns1, secondaryNamespace);
}
public String getSecondaryPrefix() {
return secondaryPrefix;
}
...
public abstract class NamespaceResolvableProject extends Project {
protected NamespaceResolverWithPrefixes ns;
public NamespaceResolvableProject() {
super();
buildNamespaceResolver();
buildDescriptors();
setNamespaceResolverOnDescriptors();
}
public NamespaceResolvableProject(NamespaceResolverWithPrefixes ns) {
super();
this.ns = ns;
buildDescriptors();
setNamespaceResolverOnDescriptors();
}
protected abstract void buildDescriptors();
protected void buildNamespaceResolver() {
ns = new NamespaceResolverWithPrefixes();
ns.put("xsi", "http:);
ns.put("xsd", "http:);
String ns1 = getPrimaryNamespacePrefix();
if (ns1 != null && ns1.length() > 0) {
ns.putPrimary(ns1, getPrimaryNamespace());
}
String ns2 = getSecondaryNamespacePrefix();
if (ns2 != null && ns2.length() > 0) {
ns.putSecondary(ns2, getSecondaryNamespace());
}
}
public String getPrimaryNamespacePrefix() {
return null;
}
public String getPrimaryNamespace() {
return null;
}
public String getPrimaryNamespaceXPath() {
if (ns.getPrimaryPrefix() != null) {
return ns.getPrimaryPrefix() + ":";
}
return "";
}