1

Androidで特定のxsdファイルに対してxml検証を試みていますが、次の行を含めるたびにアプリケーションが予期せず停止します:

SchemaFactory ファクトリ = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

関連するコード スニペットは次のとおりです。

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

   File schemaLocation = new File("/sdcard/sep.xsd");
   Schema schema = factory.newSchema(schemaLocation);

   Validator validator = schema.newValidator();

   Source source = new StreamSource("/sdcard/gtp.xml");

    try {          
        validator.validate(source);
    }
    catch (SAXException ex) {
    Toast toast = Toast.makeText(this, "invalid", Toast.LENGTH_SHORT);
    toast.show();
        }  
4

1 に答える 1

0

これが解決策です:

File xmlData;
File xmlSchema;
xmlData = new File( xmlDataName );
xmlData = new File( xmlSchemaName );
SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaFile = new StreamSource( xmlSchema );
Source xmlSource = new StreamSource( xmlData );
Schema schema = schemafactory.newSchema( schemaFile );
Validator validator = schema.newValidator();
validator.validate( xmlSource );

ただし、プロジェクトに XML 検証ライブラリを追加する必要があります。

例: https://code.google.com/p/xerces-for-android/

于 2014-08-07T11:31:53.623 に答える