// type in other NS
if (!element.getType().getNamespace().equals(schema
.getTargetNamespace())) {
found = true;
XSISAXHandler.setLogLevel(logger.getLevel());
Schema s = SchemaFactory.getInstance(element.getNamespace());
if ((element.getName() != null)
&& (element.getName() != "")) {
ai.addAttribute("", "name", "", "QName",
element.getName());
}
ai.addAttribute("", "type", "", "QName",
s.getPrefix() + ":" + element.getType().getName());
}
// search schema for type, then type can be a qName
Type[] types = schema.getComplexTypes();
for (int i = 0; (i < types.length) && !found; i++)
// TODO use equals here
if (element.getType().getName().equals(types[i].getName())) {
found = true;
if ((element.getName() != null)
&& (element.getName() != "")) {
ai.addAttribute("", "name", "", "QName",
element.getName());
}
ai.addAttribute("", "type", "", "QName",
element.getType().getName());
}
types = schema.getSimpleTypes();
for (int i = 0; (i < types.length) && !found; i++)
// TODO use equals here
if (element.getType().getName().equals(types[i].getName())) {
found = true;
if ((element.getName() != null)
&& (element.getName() != "")) {
ai.addAttribute("", "name", "", "QName",
element.getName());
}
ai.addAttribute("", "type", "", "QName",
element.getType().getName());
}
if (!found) {
// we are nested ... log this
nested = true;
if ((element.getName() != null)
&& (element.getName() != "")) {
ai.addAttribute("", "name", "", "QName",
element.getName());
}
}
}
} else {
// use a ref
Schema s = SchemaFactory.getInstance(element.getNamespace());
ai.addAttribute("", "ref", "", "QName",
s.getPrefix() + ":" + element.getName());
}
if (element.isNillable()) {
ai.addAttribute("", "nillable", "", "boolean", "true");
}
if ((element.getDefault() != null) && (element.getDefault() != "")) {
ai.addAttribute("", "default", "", "String", element.getDefault());
} else {
if ((element.getFixed() != null) && (element.getFixed() != "")) {
ai.addAttribute("", "fixed", "", "String", element.getFixed());
}
}
if (element.getSubstitutionGroup() != null) {
String s = "";
if (!element.getSubstitutionGroup().getNamespace().equals(schema
.getTargetNamespace())) {
Schema sss = SchemaFactory.getInstance(element.getSubstitutionGroup()
.getNamespace());
s = sss.getPrefix() + ":";
}
s += element.getSubstitutionGroup().getName();
ai.addAttribute("", "substitutionGroup", "", "QName", s);
}