2016-04-28 24 views
0

私はJavaで固定長のフラットファイルを解析するために 'beanio'というツールキットを使用しています。このツールキットでは、ファイル形式をXML文書で定義する必要があります。私はbeanioウェブサイト上のスキーマの場所を参照することができますが、私はむしろローカルコピーを使用します。その理由は、サイトに何か問題が発生した場合に備え、私は働くプログラムを持っていることを確認したいからです。Bean-IO、XML Doctype、およびXSDに関する問題

私の問題は、xsdファイルをローカルで参照しようとすると、SAXエンジンが不正なXML /定義に関するエラーをスローすることです。以下は動作します:

<beanio xmlns="http://www.beanio.org/2012/03" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd"> 

しかし、以下ではないでしょう。

<!DOCTYPE beanio SYSTEM "resources/formatting/mapping.xsd"> 
<beanio> 

ローカルまたはインターネット上で参照するかどうかをこれらのファイル、mapping.xsdは、まったく同じあります。次のように

スローエラーは次のとおりです。

Caused by: org.xml.sax.SAXParseException; systemId: file:///C:/workspace/LookupsFileProcessor/resources/formatting/mapping.xsd; lineNumber: 2; columnNumber: 2; The markup declarations contained or pointed to by the document type declaration must be well-formed. 

は、これは非常にイライラされています。 Java用のフラットファイル解析のためのツールキットは非常に古く、時代遅れです。私はそれらのうち4つを試しましたが、使用可能なAPIを持っていないものもあれば、外部のDTD/XSD定義に依存しているため、これと同じ問題に遭遇するものもあります。

私はXMLを十分に理解していると思いますが、ここで何が問題なのかよくわかりません。

答えて

0

まあ、私はばかげています。したがって、DTDを使用して書式を設定する方法は、doctype宣言を使用して指定します。私の例では、実際にXSDを使用してXML形式である異なる技術 DTDを使用しています。

XML Schemaの方法を使用して、ローカルXSDファイルを指定するための正しい方法は、以下単にである:

<beanio xmlns="http://www.beanio.org/2012/03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.beanio.org/2012/03 resources/formatting/mapping.xsd"> 

私は愚か探してから他の誰を助けることができると思います。ありがとう!

関連する問題