protected void validateBindingsFileAgainstSchema(Object obj) {
   if (obj instanceof List) {
     List theList = (List) obj;
     for (int i = 0; i < theList.size(); i++) {
       Object next = theList.get(i);
       if (next instanceof Source) {
         Source src = (Source) theList.get(i);
         validateBindingsFileAgainstSchema(src);
       }
     }
   }
 }
  public void setContextPath(String contextPath) throws Exception {
    classLoader = Thread.currentThread().getContextClassLoader();
    this.contextPath = contextPath;
    Map props = getProperties();
    if (props != null) {
      Map overrides = (Map) props.get(JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY);
      if (overrides != null) {
        Iterator valuesIter = overrides.values().iterator();
        while (valuesIter.hasNext()) {
          Object next = valuesIter.next();
          validateBindingsFileAgainstSchema(next);
        }
      }
    }
    jaxbContext = JAXBContextFactory.createContext(contextPath, classLoader, getProperties());

    xmlContext = ((org.eclipse.persistence.jaxb.JAXBContext) jaxbContext).getXMLContext();
    setProject(xmlContext.getSession(0).getProject());
    jaxbMarshaller = jaxbContext.createMarshaller();
    jaxbUnmarshaller = jaxbContext.createUnmarshaller();
  }