問題タブ [xmlcatalog]
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 - XMLCatalogをスキーマのインポートに使用できますか?
XMLCatalogを使用して、スキーマインポートステートメントのxsdsを解決できますか?もしそうなら、好ましい/ベストプラクティスは何ですか?xsdsをjarにパッケージ化したいので、相対的なschemaLocationの使用は機能しませんでした。
これまでのところ、私は次のようなことをしようとしています。
運が悪かった。
java - XMLカタログファイルの解決に失敗しました
OASIS v 1.1互換のリゾルバー(以下のカタログと組み合わせたNorm WalshのXMLResolver。ただし、ここで何らかの明らかなエラーが発生したと確信しています(これは、初めて使用する必要があります)を使用しています。 v 1.1の機能)OxChapML.dtdを解決しようとして失敗したため、誰かがこれに明らかに問題があるのを見ることができますか?それとも微妙に間違っているのでしょうか?
更新:すべての要素は、要素のセットをpublic
使用して問題なく解決されます。失敗している要素を使用して解決する必要があるのは、これらの要素だけです。したがって、PUBLIC識別子を使用してDocTypeを宣言するドキュメントがある場合、問題なく解決されます(CatalogManager.propertiesに設定があります)。ただし、SYSTEM識別子(「OxChapML.dtd」など)がある場合、これは適切なものと一致する必要がありますが、一致しません。リゾルバーのデバッグを上げると、を介して一致させようとしていないことがわかります。xml:base
group
systemSuffix
prefer=public
systemSuffix
systemSuffix
java - XMLカタログの解決/resolver.jarとcom.sun.org.apache.xml.internal.resolver
親愛なるフォーラム、含まれているJDKの違いは何ですか
およびApacheXercesプロジェクトに含まれているもの
単純なカタログ解決に後者を使用する利点はありますか?私がウィキペディアで読んだことから、後者を使用することに利点がないことは私には明らかであるように思われます。
org.apache.xml.resolver.tools.CatalogResolverは、外部エンティティをローカルにキャッシュされたインスタンスに解決するために使用されます。このリゾルバーはApacheXercesに由来しますが、現在はSunJavaランタイムに含まれています。
とにかく、qizxのようないくつかのXML関連プロジェクトは別のresolver.jarを提供します。ご協力いただきありがとうございます。マイケル
eclipse - EclipseXMLカタログエントリ-ディレクトリ内のドット
EclipseでXMLカタログエントリの場所を特定する方法はありますか。たとえば、場所がディレクトリの1つにドットがある場合C:\Users\xyz\.m2\repository\org\springframework\spring-beans\3.0.3.RELEASE
、[XMLカタログ要素の追加]ポップアップでこのメッセージが表示されますURI must not include '.' or '..'"
。
問題は.m2ディレクトリにあります(ドットがあります)。名前を変更する必要がありますか、それとも問題を回避する方法がありますか?
xml - IBM RSA (Rational Software Architect) での XML カタログの編集
組織が IBM RSA への移行を決定するまで、私は Eclipse WTP を使用してきました。私が抱えている問題は、RSA で XML カタログを編集する場所がどこにもないことです (バージョン 8.0.2 を使用しています)。
Eclipse WTP では、以前は [ウィンドウ] > [設定] > [XML] > [XML カタログ] から XML カタログの設定を編集できました。しかし、RSA には XML オプションがありません (そして、それらを取得する方法がわかりません!)。
何か案は?
python - PythonLXMLカタログルックアップ
Docbookドキュメントを作成するためのSConsファイルを作成しています。依存関係を追跡するために、カタログファイルのルックアップをファイルへの絶対パスに解決する方法が必要です。
だから私はDocbookXMLを少し持っていると言ってください:
およびcatalog.xmlファイル:
lxmlを使用してxincludehref文字列を取得することは問題ありませんが、私はそこで立ち往生しています。私が必要としているのは、file:///common/logo.xmlが解決する絶対ファイル名(この場合は/home/kst/svn/TOOLS/Docbook/common/logo.xml)をカタログファイルから取得する方法です。あまり面倒なことなくSConstructファイルで使用できるように、何らかのPythonコードである必要があります。
どんな助けでも大歓迎です。
xml - Eclipse WTP の XML カタログ: スタンドアロンの XML スキーマをどのように参照しますか?
システムに必要な特定の XML ファイルを検証するための XML スキーマ ドキュメント (取引先の会社から提供されたもの) があります。
スキーマの最初の数行が次のようになっているとしましょう (有罪を保護するために URI を変更しました!):
XSD の URI は、変更されていないオリジナルでは無効です。つまり、この XSD ファイルのコピーを取得するためにそこに行くことはできません。XSD で定義された URL で公開していない理由はわかりませんが、公開していません。
Eclipse の XML カタログの機能を使用して作成した XML ファイルを検証するために使用したい XSD のローカル コピーがあります。明らかに、URI が無効であるため、システムが Web から XSD を取得しようとしても意味がありません。
ローカル XSD ファイルがローカル ドライブにあるとします。
XML ファイルの最初の 2 行は次のようになります。
誰かがこれを行う方法の例を挙げてもらえますか?
具体的には:
- 上記で提供した値に基づいて、Eclipse の XML カタログ ダイアログ ボックスにどのような値を設定すればよいですか?
- XML ファイルをローカルの XSD に対して検証するには、XML ファイルに何を入れればよいでしょうか。
私はEclipse wikiでこのページを見つけましたが、個人的には指示があまり明確ではありません:-
XML カタログ パラメータを次のように設定してみました。
- 場所: C:\xml_schemas\manifest-plugin.xsd
- キーの種類 : 名前空間名
- キー: http://www.example.com/manifest-plugin
次に追加
XMLファイルに追加しましたが、うまくいかないようです。
ちなみに、お使いのバージョンの Eclipse に XML カタログがない場合は、おそらく「Web ツール プラットフォーム (WTP)」機能がインストールされていません。これらは Eclipse の Java EE バージョンに付属していますが、個別にインストールできます。
java - Ant で web.xml 検証を無効にする
私は企業のプロキシ/ファイアウォールの内側にいます。時折、ANT ビルドが次の例外で失敗します。
問題の web.xml はサード パーティのライブラリの一部であり、変更することはできず、.ear ファイルに含める必要があります。
問題のさまざまな dtd をローカル フォルダーにダウンロードして、それらを XML カタログに追加しようとしました。
質問は次のとおりです。
a) web.xml の検証を無効にすることはできますか? 変更されないアプリケーション サーバーの一部です。
b) 無効にできない場合、xmlcatalog はローカルで解決しようとする正しいアプローチですか? これに関するドキュメントに従っていると、おそらく何か間違ったことをしている可能性があり、それは機能しないことを意味します。
c) 代替手段はありますか?
どんな助けでも感謝します。
ps。企業ネットワークに接続していないときでも、喜んでアプリケーションを構築できますが、他のサービスにアクセスすることはできません。
java - Xerces は XMLCatalogResolver と同時に?
Xerces は、次のように XML カタログのサポートをリーダーに追加できると主張しています。
しかし、これを行うとすぐ<xs:include/>
に、スキーマ内のタグは処理されなくなります。が追加されると、エンティティ解決のための唯一の場所になるように思われるXMLCatalogResolver
ため、インクルードは機能しなくなります。Eclipse OTOH は同じカタログを使用して正常に検証するため、可能性があるはずです。
これを回避する方法はありますか、またはカタログをサポートする他の Java ベースのバリデーターはありますか?
ありがとう、ドミニク。
maven - XJCにインポートされたスキーマからの型定義の解決に失敗する
JAXBを使用するこのAPIを使用して、XJC(XML-to-Java)コンパイラーによってXMLスキーマから名前付き参照を介して生成されたオブジェクトモデルを便利に使用できます。これは、JAXBコンテキストの作成を抽象化し、あらゆる種類のバックグラウンドマジックとリフレクションによってObjectFactoryメソッドを見つけ出します。その基本的な要点は、常に1つの一般的なスキーマを定義し、次にその一般的なスキーマを「拡張」する任意の数(0の場合もある)のスキーマを定義し、それぞれが独自のデータモデルを作成することです。一般的なスキーマには再利用可能な定義があり、それを拡張するスキーマはそれらを使用して独自のモデルを構成します。
現在、複数のプロジェクトで一般的なスキーマを再利用したいという状況に遭遇しました。一般的な型の定義はプロジェクト間で同じである必要があり、一部のコードはそれらから生成された抽象クラスに対して構築されます。したがって、最初にいくつかの汎用スキーマのクラスを生成し、次にそれらを拡張して個別に使用するクラスを生成する必要があります。ビルドプロセスにMavenを使用しています。
私が直面している問題は、拡張スキーマ内のそのジェネリックスキーマから型定義を解決することです。
私の汎用スキーマの名前が「general.xsd」で、次のようになっているとします。
その隣に、名前のカスタマイズを行い、出力のパッケージ名を設定するためのバインディングファイルがあります。
次に、そのプロジェクトのPOMに次のビットを入れて、Javaクラスを生成します。
ご覧のとおり、私はJAXB2.1Mavenプラグインを使用しています。段階的なコンパイルのためにエピソードファイルを生成するオプションを設定しました。以前の出力を削除するオプションは、バグの回避策でした。最初にすべてがクリーンアップされていることを確認して、再コンパイルを強制するだけです。
ここまでは順調ですね。そのプロジェクトは問題なくコンパイルされます。生成されたJavaクラスとは別に、スキーマを結果のjarファイルにパッケージ化することにも注意してください。したがって、それらはクラスパスで利用できます。ファイルは、sun-jaxb.episode
本来あるべきMETA-INFにあります。
次に、最初にインポートすることにより、上記を拡張するスキーマを使用するプロジェクトを開始します。「サブタイプ」の1つは次のようになります(これをsub.xsdと呼びます)。
ここでも、バインディングファイルがあります。
そして、XJC生成を処理するこのプロジェクトのPOMからのビットは次のとおりです。
元々、すべてのスキーマは1つのフォルダーにありschemaLocation
、インポートの属性をに設定してgeneral.xsd
いましたが、これは正常に機能しました。しかし、物事がプロジェクト間で分離された今、私は問題にぶつかります。最初の問題は、他のスキーマが見つからなかったことです。これを解決schemaLocation
するには、<xs:import />
要素から属性を削除し、属性のみを保持し、上記のPOM抽出で参照されてnamespace
いるカタログファイル()を追加します。catalog.cat
その内容は次のとおりです。
スキーマが見つからないことを示すエラーが発生しなくなったため、これは機能しているようです。しかし、何らかの理由で、インポートされたスキーマからの実際の型定義の解決は引き続き失敗します。例外は次のとおりです。
これが私がこれまでに試したことです:
- カタログファイルを使用します。インポートされたスキーマが見つかるようになったため、部分的に成功しました。
- 一般スキーマのコンパイルでエピソードファイルを生成し、これをサブスキーマのコンパイルに使用します。違いはないようですが、これはタイプが解決された後にのみ役割を果たすはずなので、これはまだ重要ではないと思います。
- 別のJAXP(注:JAXB、JAXPではない)実装を使用してください。例外のスタックトレースでそれを確認できたので、別のものを使用しましたが、最終結果は同じです。
maven-jaxb22-plugin
21の代わりに使用してください。違いはありません。
オンラインで見てみると、少なくとも2006年以来、人々はこの問題に遭遇しているようであり、Xercesリゾルバーの問題に関連している可能性があります。これが、誰も気にせずに6年間潜んでいるバグではないことを願っています。他の誰かがいくつかの提案がありますか?たぶん誰かが同じ問題に遭遇し、解決策を見つけましたか?私が考えることができる唯一の回避策は、「svn:externals」を使用して一般的なスキーマをサブプロジェクトにドラッグし、そこでクラスを再生成することですが、それはダーティであり、svnリポジトリに接続できる場合にのみ機能します。
この長い投稿を読んでくれてありがとう。上記のすべてを既存のプロジェクトから取り除いて、匿名性のためにいくつかの名前空間やその他のものを置き換えたことを覚えておいてください。そのため、いくつかのタイプミスが発生する可能性があります。