}
private String getNewSchemaLocation(String schemaLocation, String namespace, String systemId) {
// ����ָ����schemaLocation�ж�
if (schemaLocation != null) {
Schema schema = schemas.findSchema(schemaLocation);
if (schema != null) {
return prefix + schema.getName();
} else {
return schemaLocation; // ����ԭ����location���������Ǵ���ģ�
}
}
// �ٸ���namespace�ж�
if (namespace != null) {
Set<Schema> nsSchemas = nsToSchemas.get(namespace);
if (nsSchemas != null && !nsSchemas.isEmpty()) {
// ���ȣ���������ͬns��schema�в��Ұ汾��ͬ��schema��
String versionedExtension = getVersionedExtension(systemId);
if (versionedExtension != null) {
for (Schema schema : nsSchemas) {
if (schema.getName().endsWith(versionedExtension)) {
return prefix + schema.getName();
}
}
}
// ��Σ�ѡ���һ��Ĭ�ϵ�schema����˳���ǣ�beans.xsd��beans-2.5.xsd��beans-2.0.xsd