このスキーマ(zip内)に対してXMLファイルを検証したい。他の2つのXSDファイルをインポートします。
<import namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation="xmldsig-core-schema.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#"
schemaLocation="xenc-schema.xsd"/>
2つのファイルもここから入手できます。
- http://www.forum-datenaustausch.ch/xmldsig-core-schema.zip
- http://www.forum-datenaustausch.ch/xenc-schema.zip。
検証時に、次のエラーが発生します。
Src-resolve: Cannot Resolve The Name 'xenc:EncryptedData' To A(n) 'element Declaration' Component.
私の検証/アンマーシャリングコードは次のようになります(JAXBプロバイダーとしてmoxyを使用):
jaxbContext = JAXBContext.newInstance(type.getRequestType().getPackage().getName());
Unmarshaller um = jaxbContext.createUnmarshaller();
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new StreamSource(this.getClass().getResourceAsStream("/xsd/" + type.getXsdName())));
um.setSchema(schema);
root = um.unmarshal(new StreamSource(new ByteArrayInputStream(xmlData)), type.getRequestType());
タイプが何をするかを尋ねる前に:私はhttp://www.forum-datenaustausch.ch/からすべてのタイプの請求書をインポートできるコードを書きました。ただし、バージョン4.3以降では、2つの追加スキーマファイルが使用されます。XMLファイルをどのように検証できますか?