Visual StudioとOxygenの両方を使用してXMLサンプルファイルを使用してXSDを生成すると、<xs:element ref="ELEMENTNAME" />
実際の要素名。ファイルの後半には、要素が何であるかを定義する要素<xs:element name="ELEMENTNAME" type="xs:string" />
があります。例えば、ここに抜粋です:REF要素を除いたXSDファイルを生成する - リテラルなXSDファイルを作成するだけです
<xs:element name="Header">
<xs:complexType>
<xs:sequence>
<xs:element ref="VersionNumber" />
<xs:element ref="BillerGroupID" />
<xs:element ref="BillerGroupShortName" />
<xs:element ref="BillerID" />
<xs:element ref="BillerShortName" />
<xs:element ref="FileIndicator" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VersionNumber" type="xs:string" />
<xs:element name="BillerGroupID" type="xs:string" />
<xs:element name="BillerGroupShortName" type="xs:string" />
<xs:element name="BillerID" type="xs:string" />
<xs:element name="BillerShortName" type="xs:string" />
<xs:element name="FileIndicator" type="xs:string" />
がここでの問題だ - 私はマイクロソフトのBizTalkを使用しています、そして、彼らはすべてのルートレベルにしているので、それが可能なスキーマとして一つ一つの「要素」タグを見て - ヘッダー、すべての単一の子要素と一緒に。私はちょうど1つのスキーマを利用可能にしたいと思っています - ヘッダー、この場合、 - そして残りを隠す。
明白な解決策は、手動でREF文を削除し、手動でこのように見えるように私のファイルを編集するように思わ:
<xs:element name="Header">
<xs:complexType>
<xs:sequence>
<xs:element name="VersionNumber" type="xs:string" />
<xs:element name="BillerGroupID" type="xs:string" />
<xs:element name="BillerGroupShortName" type="xs:string" />
<xs:element name="BillerID" type="xs:string" />
<xs:element name="BillerShortName" type="xs:string" />
<xs:element name="FileIndicator" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
しかし、私のファイルは巨大で、要素の数千人が含まれているので、これではありません本当に実現可能です。 REFを使わずにファイルを生成するツールを私のツールに教える方法はありますか?その代わりに、ルートレベルではなく、どこにあるべきかの要素のコピーを置くだけですか?
"Well-Formed XML"オプションをインストールする必要がありましたが、単一のREFなしで魅力的に機能しました。あなたのヒントありがとう! – SqlRyan