問題タブ [xsom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - XSD 循環インポート
XSD を解析する必要がありますXSOM
が、この XSD には循環インポートが含まれています。
A.xsd
B.xsd
XSOM
循環インポートにより既に定義されている要素が検出されるため、スキーマを解析できません。そこで、A で定義され、B で使用される要素を外部化することで、循環インポートを打破しようとしました。
C.xsd には、B で使用される A の要素が含まれています。これらの要素は A では使用されないことに注意してください。これらが A で定義されている理由を聞かないでください。
A.xsdは次のようになります
B.xsd (A.xsd の代わりに C.xsd をインポート) は次のようになります。
XSOM
XSD を解析できます。しかし、今では次のコードでスキーマを作成できません:
JDK 1.7 にバンドルされている標準実装を使用します。私は例外を受け取ります:
問題は、リソース リゾルバーが B 名前空間に対して呼び出され、意味のある A 名前空間に対して呼び出されないことです。名前空間 A は A.xsd と C.xsd で共有されているため、リソース リゾルバーは C.xsd で定義されている要素を見つけることができません。
循環インポートは有効ですか? XSOM
によって解析されてから読み込まれるように、循環インポートを中断することは可能SchemaFactory
ですか?
java - XSD Walker - 一連の XML タグの開始と終了を入力として XSD をトラバースする
基本的に私が欲しいのは、XSD の状態遷移図表現を作成することです。これは単純な状態図ではありません。コンポジター (All、Choice、Sequence)、最小および最大オカレンス、および派生 (制限、拡張) を反映する必要があります。XSD トラバーサーが実行できる必要があるのは、XML タグがフィードされるたびに、XSD の状態図表現での位置を更新することです。タグの終了時にその位置をロールバックする必要があります。また、XML タグをフィードすると XML が無効になるかどうかを判断できる必要があります。つまり、トラバーサーは XML タグが指定されたパスを見つけることができません。
私は XSOM を使用してきました。これはファンクター ビジター アーキテクチャですが、XSOM を使用してコンポジター、オカレンス、派生を実装することはできません。
すでにこれを行っているライブラリを知っている人はいますか?
または、そのような状態遷移図を作成する方法に関するアイデアはありますか?
それとも、XML Validators のコードへのリンクを提供してくれますか? これは基本的に、XSD 権限に対して XML を検証するときに XML バリデーターが行うことですか?
java - 2 つの XSComplexType が等しいかどうかを比較する方法は?
私は自動的に XML スキーマを生成しており、結果の xsd ファイルはベネチアン ブラインド デザイン パターンに従って作成されています。現在、複雑な型がたくさんあり、その数を減らしたいと考えています。2 つの複合型が同じ制限を記述しているかどうかを判断する簡単な方法はありますか?
これが私が何を意味するかを示す例です:
明らかに、「someType」と「someOtherType」は同等です。ここで、2 つのスキーマのどのタイプが同等かを調べたいとしましょう。XSOM を使用してスキーマを解析しています。
2 つの「complexType」ノード間のこの種の等価性をチェックする洗練された方法はありますか?
parsing - Mule ESB で WSDL をインポートしようとすると、画像に記載されているエラーが発生する
Mule ESB の CXF ブロックに WSDL をインポートしようとすると、以下の解析エラーが発生します。誰か助けてください。