Проблема StreamSource с FileInputStream против Файла - PullRequest
1 голос
/ 27 июля 2010

Ошибка SAX, если StreamSource (FileInputStream), но StreamSource (File) ok

Привет, я столкнулся с проблемой StreamSource, когда параметром был FileInputStream.Когда параметром был File, все в порядке.

 public int initXSD (String xsdFile) {

        // no error at all if File
  Source schemaFile = new StreamSource(new File(xsdFile));

        // sax error at newSchema() if FileInputStream
  Source schemaFile = new StreamSource( new FileInputStream(new File(xsdFile))); 

  SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);


     Schema schema = factory.newSchema(schemaFile);
  validator = schema.newValidator();
  return 0;
 }

, как только я изменил строку StreamSource, чтобы получить FileInputStream:

Source schemaFile = new StreamSource( new FileInputStream(new File(xsdFile)));

Я получил ошибку саксофона в newSchema ():

org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 's:ComplexObjectType' to a(n) 'type definition' component.

1 Ответ

0 голосов
/ 27 июля 2010
public int initXSD (String xsdFile) {

    // no error at all if File 
    Source schemaFile = new StreamSource(new File(xsdFile));

    // sax error at newSchema() if FileInputStream 
    Source schemaFile = new StreamSource( new FileInputStream(new File(xsdFile))); 

    Schema schema = factory.newSchema(schemaFile); 
    validator = schema.newValidator(); 
    return 0;
}
...