問題タブ [xinclude]
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.
lxml - lxml で xinclude(xi:include) ブロックを含む XML ファイルを書き込む
lxml を使用して集合 XML ファイルを自動的に作成したいので、次のような「xi:include」を記述する必要があります。
XInclude() は、名前の SubElement を解析して追加しようとするためだけにあるようです: 'xi:include' はエラーを発行します。だから私はそれを行うための助けをいただければ幸いです。私が使用するコード:
エラー:
ValueError: Invalid tag name u'xi:include'
よろしくお願いします
編集:(8時間待ったら、おそらく答えを書かないでしょう)
newtover に感謝します。あなたのポインターが解決策を見つけるのに役立ちました。
xml - Xinclude で xpointer を使用して要素を参照する方法
同じ構造の 2 つの XML ファイルを結合して 1 つにしたいと考えています。例えば;
Test1.xml
およびTest2.xml
作成するには
TestOutput.xml
つまり、それぞれの要素がすべて含まれた 1 つの XML ファイルです。
StackOverflow で役立つ質問を見つけて、これを思いつきました。
Merge.xml
これを実行して実行します(関与する理由でxmllintを使用する必要があります)
xmllint -xinclude Merge.xml
しかし、これは機能しません.xpointerに関連していると思われるさまざまなチオングについて不平を言います。
Merge.xmlで xpointer 属性を省略した場合、適切な出力が得られますが、必要な要素が含まれているだけではありません。
xpointerで私が間違っていることについて誰かアドバイスをいただけますか?
ありがとうございます。
xml-parsing - XInclude を使用した解析時の「XML ファイルの解析中にエラーが発生しました」
XInclude を使用して結合された xml ドキュメントを作成し、JAXB 経由で非整列化しようとしています。
ここに私のアンマーシャリングコードがあります:
これが私のメインのxmlファイルです:
そしてincluded.xml:
実際に非整列化するために、xml ファイルへのパスを使用して新しいファイルを作成しFileReader
ます (path-to-xml-files/main.xml - メイン ファイルを明確に見つけることができるため、パスは正しいです)。ただし、実行すると、含まれているファイルに問題があります。リンクされた SAXParseException で UnmarshalException が発生し、次のエラー メッセージが表示されます: XML ファイルの解析中にエラーが発生しました (href='path-to-xml-files/included.xml')。
included.xml のコンテンツを main.xml に手動でマージすると、問題なく実行されます。
JAXB の問題なのか XInclude の問題なのかはわかりませんが、後者の可能性が高いと思われます。
私は何が欠けていますか?
xml - XSLT の参照を含む document() を使用した XML の解析
私の問題があります。
参照を使用し、他の XML ファイルを含む XML ファイルがあります。
XML ファイル (XSL で解析) :
file2.XML :
myref.ref :
XSL :
それから、参照 (myref.ref で参照) を含む file2.XML を開くために document() 関数を使用する XSL があります。
そのため、document('file2.XML') を使用すると、エンティティ "refentity" が参照されましたが、宣言されていないというエラーが表示されます。
document() を使用して他の XML を開くときに、myref.ref を使用するにはどうすればよいですか?
ありがとう。
xml - xinclude を使用した後に xml ドキュメントに追加された xml:base 属性を取り除くにはどうすればよいですか?
xinclude を使用して xml ファイルを Java オブジェクトに非整列化しようとしています。jaxb で注釈が付けられたコード ファイルに基づくスキーマがあります。これが私のアンマーシャリングコードです:
xr.parse() を呼び出しているため、実際のアンマーシャリングは成功しません (解析によってストリームが閉じられるため)。ただし、解析エラー[Error] file-name.xml:2:66: cvc-complex-type.3.2.2: Attribute 'xml:base' is not allowed to appear in element 'element name' が発生します。
これは、xinclude が常に含まれる要素にxml:base属性を追加して、ベース URI を保持できるためであることがわかりました。問題は、スキーマがこの属性を許可していないことです。これを取り除く方法はありますか?私はオンラインで見回しましたが、簡単に実装できるものは実際には見たことがありません。
xml - Webstorm で XSLT の XInclude を有効にする方法は?
私はこのようなxmlを持っています:
しかし、webstorm XSLTRunner は実際にはインクルードを実行しません。有効にする方法は?Windows 8、最新のJavaバージョンで実行しています。
xml - 大きな XML ファイルを小さなファイルに分割しますが、1 つのファイルのように検証し続けます
7K 行、500kb の XML ファイルがあります。このようなファイルを大きいと呼ぶのはばかげているように聞こえますが、これは手動で編集される構成ファイルであり、このコンテキストではサイズが問題になります。
- 構文の強調表示が非常に遅い (少なくとも IntelliJ では)
- そのような大きなファイルで何かを検索するのは苦痛です
したがって、ファイルをいくつかの小さなファイルに分割したいと思います。XIncludeは実際には素晴らしいように思えますが、ファイル全体で一意でなければならない外部キーやインデックスへの参照を含むエラーを防ぐのに大いに役立つ洗練された XSD が存在します。XML ファイルを複数の小さなファイルに分割した場合、検証は複数のファイルにまたがって相互参照をチェックする必要があります。
--> 最初に XInclude を実行し、次に検証を実行するバリデータが必要です。Googleはこれが可能であることを示唆していますが、私はこれを正しく行うことができませんでしたxmllint --xinclude --schema mySchema.xsd myXMLWithPlentyOfXIncludes.xml
.インクルード ファイルのルート タグに xmlns 属性を追加すると、問題が発生しますThe attribute '{http://www.w3.org/XML/1998/namespace}base' is not allowed
。
では、ファイル間で名前空間を正しく取得するには、どのように設定すればよいでしょうか? 検証を行うにはどうすればよいですか? 他に知っておくべき注意事項はありますか?
おまけ: IntelliJ で検証を機能させるにはどうすればよいですか?