package com.thaiopensource.relaxng.pattern; import org.relaxng.datatype.Datatype; import org.relaxng.datatype.DatatypeBuilder; import org.relaxng.datatype.DatatypeException; import org.relaxng.datatype.DatatypeLibrary; import org.relaxng.datatype.DatatypeLibraryFactory; import com.thaiopensource.xml.util.WellKnownNamespaces; class CompatibilityDatatypeLibrary implements DatatypeLibrary { private final DatatypeLibraryFactory factory; private DatatypeLibrary xsdDatatypeLibrary = null; CompatibilityDatatypeLibrary(DatatypeLibraryFactory factory) { this.factory = factory; } public DatatypeBuilder createDatatypeBuilder(String type) throws DatatypeException { if (type.equals("ID") || type.equals("IDREF") || type.equals("IDREFS")) { if (xsdDatatypeLibrary == null) { xsdDatatypeLibrary = factory.createDatatypeLibrary(WellKnownNamespaces.XML_SCHEMA_DATATYPES); if (xsdDatatypeLibrary == null) throw new DatatypeException(); } return xsdDatatypeLibrary.createDatatypeBuilder(type); } throw new DatatypeException(); } public Datatype createDatatype(String type) throws DatatypeException { return createDatatypeBuilder(type).createDatatype(); } }