2011-07-04 9 views
1

一部のXSDドキュメントを処理する必要があります。私はAPIセットについての質問ではないのです一般的なXSDドキュメントを解析する方法

、どのようにI found this very helpful API

ここで問題です..私は言い換える要素...の親である要素を知ることができますどのように

..することができます私は

.. XSDが異なるようだ

(それはXMLで非常に簡単です)、文書要素のhirarecyをexectractここでは例です:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:element name="Journal"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="JournalName"/> 
     <xs:element ref="Volumes"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="Journals"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" ref="Journal"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
..... 

JournalJournalsの下位の要素ですが、それより上に表示されます。 (XML文書のネストされた方法では起こり得ない)

ありがとう。

答えて

0

XSDで読むことを試みてください(たとえば、w3schools)。上記のXSDは、このXSDに準拠したXMLは、いくつかの下位要素ジャーナルを含むジャーナル要素を持つことができると述べています。ジャーナルはサブ要素であるように見えるかもしれませんが、そうではありません。

1

あなたの考えはちょっと混乱しているようです。なぜジャーナルの定義はジャーナルのそれ以前に起こらなければならないのですか?これらの定義には、が含まれておらず、お互いを含む要素を定義していますが、定義は分かれています。いくつかの対応するJavaコードを考えてみましょう:

class Journal { 
    String journalName; 
    List<Volume> volumes; 
} 

class Journals { 
    List<Journal> journals; 
} 

あなたは雑誌のためにその内部で発生するジャーナルの定義についてはおろか、特定の順序でそれらを見て期待していない、あなたでしょうか?

スキーマから階層を抽出する場合は、ドキュメント全体を読んで、要素が他の要素を含むものとして定義されている場所に注意する必要があります。階層の説明を作成することができます。

+0

Ohhh no ...、非常に面倒で冗長な..私にそれをさせてくれる既製のライブラリはありませんか? –

+0

私には分かりません。しかし、スキーマを解析するXSOMへのリンクを投稿しました。必要なのは、XSOMが提供するオブジェクトを調べて階層を構築することだけです。簡単! –

関連する問題