2012-04-30 5 views
3

私は、指定したxmlファイルを自分のアンドロイドアプリケーションのxsdファイルに対して検証するコードを作成しました。しかし、それはIlleagal例外エラーを出しています。いくつかのポストでは、私は低Java版のためにそれを見た。 しかし、私のJavaバージョン1.6.0_20。以下のコード、エラーログを確認し、ご提案ください。xsdに対するxmlスキーマ変換の問題は、アンドロイドアプリケーションでIlleagal例外を指定しました

コード:

try { 
     // parse an XML document into a DOM tree 
     parserFactory = DocumentBuilderFactory.newInstance(); 
     parserFactory.setNamespaceAware(true); 
    } catch (Exception e) { 
     Log.e("Exception", "ERROR Last : " + e); 
     e.printStackTrace(); 
    } 

    DocumentBuilder parser = null; 
    try { 
     parser = parserFactory.newDocumentBuilder(); 
    } catch (ParserConfigurationException e1) { 
     e1.printStackTrace(); 
     Log.e("Exception", "ERROR 1: " + e1); 
    } 
    Document document = null; 
    try { 
     document = parser.parse(getResources().openRawResource(
       R.raw.change_pin_request_xaml)); 
    } catch (SAXException e1) { 
     e1.printStackTrace(); 
     Log.e("Exception", "ERROR 2 : " + e1); 

    } catch (IOException e1) { 
     e1.printStackTrace(); 
     Log.e("Exception", "ERROR 3 : " + e1); 
    } 

    try { 
     // create a SchemaFactory capable of understanding WXS schemas 
     factory = SchemaFactory 
       .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
     // W3C_XML_SCHEMA_INSTANCE_NS_URI 
     // W3C_XML_SCHEMA_NS_URI 

     // load a WXS schema, represented by a Schema instance 
     schemaFile = new StreamSource(getResources().openRawResource(
       R.raw.change_pin_request_xsd)); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Log.e("Exception", "ERROR special " + e); 
    } 
    Schema schema = null; 

    try { 
     schema = factory.newSchema(schemaFile); 
    } catch (SAXException e1) { 
     Log.e("Exception", "ERROR 4 : " + e1); 
     e1.printStackTrace(); 
    } 

    // create a Validator instance, which can be used to validate an 
    // instance document 
    Validator validator = schema.newValidator(); 

    // validate the DOM tree 
    try { 
     try { 
      validator.validate(new DOMSource(document)); 
     } catch (IOException e) { 
      Log.e("Exception", "ERROR 5 : " + e); 
      e.printStackTrace(); 
     } 
    } catch (SAXException e) { 
     Log.e("Exception", "ERROR 6 : " + e); 

    } 

エラー:

04-30 20:34:12.658: W/System.err(921): java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema 
04-30 20:34:12.658: W/System.err(921): at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:192) 
04-30 20:34:12.658: W/System.err(921): at com.xml.xsd.test.XmlXsdTestActivity.onCreate(XmlXsdTestActivity.java:64) 
04-30 20:34:12.658: W/System.err(921): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-30 20:34:12.658: W/System.err(921): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
04-30 20:34:12.658: W/System.err(921): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
04-30 20:34:12.658: W/System.err(921): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
04-30 20:34:12.658: W/System.err(921): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
04-30 20:34:12.658: W/System.err(921): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-30 20:34:12.658: W/System.err(921): at android.os.Looper.loop(Looper.java:123) 
04-30 20:34:12.658: W/System.err(921): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-30 20:34:12.669: W/System.err(921): at java.lang.reflect.Method.invokeNative(Native Method) 
04-30 20:34:12.669: W/System.err(921): at java.lang.reflect.Method.invoke(Method.java:507) 
04-30 20:34:12.669: W/System.err(921): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-30 20:34:12.669: W/System.err(921): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-30 20:34:12.669: W/System.err(921): at dalvik.system.NativeStart.main(Native Method) 
04-30 20:34:12.669: E/Exception(921): ERROR special java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema 
+0

http://stackoverflow.com/questions/3129934/schemafactory-doesnt-support-w3c-xml-schema-in-platform-level-8の可能な複製 – THelper

+0

すべての方法を試した後に...質問を投稿しましたここ... – candy

答えて

0

これはコメントする必要がありますが、私が作ることができないので、コメントは病気それ答えます。

右>パッケージエクスプローラでプロジェクトのプロパティ> Javaコンパイラの

をクリックして、そのコンパイルは1.6を使用している場合参照してください。私は奇妙な問題を抱えていた。それは、Eclipseが1.5でコンパイルされていたからだ。

+0

私のeclipseはJavaコンパイラ1.6のみを使用しています。私はすでにそれをチェックしました。私の古いプロジェクトにもこのタイプの問題があったのですが、とにかく情報に感謝します。 – candy

関連する問題