Validar XML do CT-e usando o Xerces

Pessoal, preciso validar o XML com o .XSD, acontece que o XSD tem dependências de outros dentro dele.

Preciso que seja validado dentro da aplicação sem referenciar recursos externos.

Segue meu código que não está funcionando porque não encontra o elemento “enviCTe”, lembrando que o mesmo XML quando validado usando os caminhos absolutos para o .XSD na pasta local o XML é validado corretamente.

O problema todo está em chamar os XSD dentro da aplicação mesmo:

[code]public List validarEnvio(String xml) throws SAXException, IOException {
erros = new ArrayList();

	FacesContext context = FacesContext.getCurrentInstance();
	URL urlLocalSchemaEnvio = context.getExternalContext().getResource("//resources//xsd//enviCTe_v2.00.xsd");
	URL urlLocalSchemaTiposBasicos = context.getExternalContext().getResource("//resources//xsd//cteTiposBasico_v2.00.xsd");
	URL urlLocalSchemaTipoGeral = context.getExternalContext().getResource("//resources//xsd//tiposGeralCTe_v2.00.xsd");
	
	xml = normalizeXML(xml);
	InputStream isXML = new ByteArrayInputStream(xml.getBytes());

	SAXParser parser =  new SAXParser();
	ValidatorErroHandler handler = new ValidatorErroHandler();

	// jndi:/default-host/pstransp/resources/xsd/enviCTe_v2.00.xsd
	String strLocalSchemaEnvio = urlLocalSchemaEnvio.toExternalForm();
	
	// para mostrar os erros de validação
	parser.setFeature("http://xml.org/sax/features/validation", true);

	// para validar usando um schema
	parser.setFeature("http://apache.org/xml/features/validation/schema", true);

	// para verificar todos os schemas
	parser.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);

	parser.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", strLocalSchemaEnvio);

	// habilita o manipulador de erros
	parser.setErrorHandler(handler);

	parser.parse(new InputSource(isXML));

	return erros;
}

[/code]
Erro: cvc-elt.1.a: Cannot find the declaration of element ‘enviCTe’.

Pelo que li mesmo havendo dependências entre os XSD eu deveria passar apenas o principal.

O SAXParser utilizado lá é do Xerces 2.11

Alguém pode dar alguma dica sobre isso?