package com.thaiopensource.datatype;
import com.thaiopensource.util.Service;
import org.relaxng.datatype.DatatypeLibrary;
import org.relaxng.datatype.DatatypeLibraryFactory;
import java.util.Iterator;
// We use this instead of the one in org.relaxng.datatype.helper because tools.jar in Java 6 includes
// org.relaxng.datatype, which messes up class loading for the jing task in Ant, when Ant's class loader's
// parent will have tools.jar in its classpath.
public class DatatypeLibraryLoader implements DatatypeLibraryFactory {
private final Service<DatatypeLibraryFactory> service = Service.newInstance(DatatypeLibraryFactory.class);
public DatatypeLibrary createDatatypeLibrary(String uri) {
for (Iterator<DatatypeLibraryFactory> iter = service.getProviders(); iter.hasNext();) {
DatatypeLibraryFactory factory = iter.next();
DatatypeLibrary library = factory.createDatatypeLibrary(uri);
if (library != null)
return library;
}
return null;
}
}