in src/main/java/org/apache/ws/commons/schema/XmlSchema.java [739:773]
protected XmlSchemaNotation getNotationByName(QName name, boolean deep, Stack<XmlSchema> schemaStack) {
if (schemaStack != null && schemaStack.contains(this)) {
// recursive schema - just return null
return null;
}
XmlSchemaNotation notation = notations.get(name);
if (deep) {
if (notation == null) {
// search the imports
for (XmlSchemaExternal item : externals) {
XmlSchema schema = getSchema(item);
if (schema != null) {
// create an empty stack - push the current parent in
// and
// use the protected method to process the schema
if (schemaStack == null) {
schemaStack = new Stack<XmlSchema>();
}
schemaStack.push(this);
notation = schema.getNotationByName(name, deep, schemaStack);
if (notation != null) {
return notation;
}
}
}
} else {
return notation;
}
}
return notation;
}