@Override public boolean canSetParameter(String name,Object value){
  if (value == null) {
    return true;
  }
  if (value instanceof Boolean) {
    if (name.equalsIgnoreCase(Constants.DOM_COMMENTS) || name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)|| name.equalsIgnoreCase(Constants.DOM_ENTITIES)|| name.equalsIgnoreCase(Constants.DOM_SPLIT_CDATA)|| name.equalsIgnoreCase(Constants.DOM_NAMESPACES)|| name.equalsIgnoreCase(Constants.DOM_VALIDATE)|| name.equalsIgnoreCase(Constants.DOM_WELLFORMED)|| name.equalsIgnoreCase(Constants.DOM_INFOSET)|| name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) {
      return true;
    }
 else     if (name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM) || name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)|| name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION)) {
      return (value.equals(Boolean.TRUE)) ? false : true;
    }
 else     if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE) || name.equalsIgnoreCase(SEND_PSVI)) {
      return (value.equals(Boolean.TRUE)) ? true : false;
    }
 else {
      return false;
    }
  }
 else   if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) {
    return (value instanceof DOMErrorHandler) ? true : false;
  }
 else   if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) {
    return (value instanceof LSResourceResolver) ? true : false;
  }
 else   if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) {
    return (value instanceof String) ? true : false;
  }
 else   if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) {
    return ((value instanceof String) && (value.equals(Constants.NS_XMLSCHEMA) || value.equals(Constants.NS_DTD))) ? true : false;
  }
 else   if (name.equalsIgnoreCase(ENTITY_RESOLVER)) {
    return (value instanceof XMLEntityResolver) ? true : false;
  }
 else   if (name.equalsIgnoreCase(SYMBOL_TABLE)) {
    return (value instanceof SymbolTable) ? true : false;
  }
 else   if (name.equalsIgnoreCase(GRAMMAR_POOL)) {
    return (value instanceof XMLGrammarPool) ? true : false;
  }
 else   if (name.equalsIgnoreCase(SECURITY_MANAGER)) {
    return (value instanceof mf.org.apache.xerces.util.SecurityManager) ? true : false;
  }
 else {
    return false;
  }
}

@ Override public boolean canSetParameter ( String name , Object value ) { if ( value == null ) { return true ; } if ( value instanceof Boolean ) { if ( name . equalsIgnoreCase ( Constants . DOM_COMMENTS ) || name . equalsIgnoreCase ( Constants . DOM_DATATYPE_NORMALIZATION ) || name . equalsIgnoreCase ( Constants . DOM_CDATA_SECTIONS ) || name . equalsIgnoreCase ( Constants . DOM_ENTITIES ) || name . equalsIgnoreCase ( Constants . DOM_SPLIT_CDATA ) || name . equalsIgnoreCase ( Constants . DOM_NAMESPACES ) || name . equalsIgnoreCase ( Constants . DOM_VALIDATE ) || name . equalsIgnoreCase ( Constants . DOM_WELLFORMED ) || name . equalsIgnoreCase ( Constants . DOM_INFOSET ) || name . equalsIgnoreCase ( Constants . DOM_NAMESPACE_DECLARATIONS ) ) { return true ; } else if ( name . equalsIgnoreCase ( Constants . DOM_NORMALIZE_CHARACTERS ) || name . equalsIgnoreCase ( Constants . DOM_CANONICAL_FORM ) || name . equalsIgnoreCase ( Constants . DOM_VALIDATE_IF_SCHEMA ) || name . equalsIgnoreCase ( Constants . DOM_CHECK_CHAR_NORMALIZATION ) ) { return ( value . equals ( Boolean . TRUE ) ) ? false : true ; } else if ( name . equalsIgnoreCase ( Constants . DOM_ELEMENT_CONTENT_WHITESPACE ) || name . equalsIgnoreCase ( SEND_PSVI ) ) { return ( value . equals ( Boolean . TRUE ) ) ? true : false ; } else { return false ; } } else if ( name . equalsIgnoreCase ( Constants . DOM_ERROR_HANDLER ) ) { return ( value instanceof DOMErrorHandler ) ? true : false ; } else if ( name . equalsIgnoreCase ( Constants . DOM_RESOURCE_RESOLVER ) ) { return ( value instanceof LSResourceResolver ) ? true : false ; } else if ( name . equalsIgnoreCase ( Constants . DOM_SCHEMA_LOCATION ) ) { return ( value instanceof String ) ? true : false ; } else if ( name . equalsIgnoreCase ( Constants . DOM_SCHEMA_TYPE ) ) { return ( ( value instanceof String ) && ( value . equals ( Constants . NS_XMLSCHEMA ) || value . equals ( Constants . NS_DTD ) ) ) ? true : false ; } else if ( name . equalsIgnoreCase ( ENTITY_RESOLVER ) ) { return ( value instanceof XMLEntityResolver ) ? true : false ; } else if ( name . equalsIgnoreCase ( SYMBOL_TABLE ) ) { return ( value instanceof SymbolTable ) ? true : false ; } else if ( name . equalsIgnoreCase ( GRAMMAR_POOL ) ) { return ( value instanceof XMLGrammarPool ) ? true : false ; } else if ( name . equalsIgnoreCase ( SECURITY_MANAGER ) ) { return ( value instanceof mf . org . apache . xerces . util . SecurityManager ) ? true : false ; } else { return false ; } }
dom level 3 wd - experimental . check if setting a parameter to a specific value is supported .
