問題タブ [exi]
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.
xml - EXI(効率的なXML交換)が登場... XML APIの準備はできていますか?
W3のEXI(効率的なXML交換)が標準化される予定です。それは「最後のバイナリ標準」であると主張しています。
これは、処理と保存用に最適化されたXMLデータを格納するための標準であり、XMLスキーマにバンドルされています(データを強く型付けし、強く構造化する)。さて、主張されている利点はたくさんあります。私は、処理とメモリ効率の測定に最も感銘を受けました。
確立されたすべてのXMLAPIはどうなるのでしょうか?
私の質問に関連するこの段落があります:
4.2既存のXML処理API
EXIはXMLインフォセットのエンコーディングであるため、EXI実装はXML処理に一般的に使用されるXML APIのいずれかをサポートできます。したがって、EXIは既存のXMLAPIにすぐには影響しません。ただし、既存のXML APIを使用するには、EXIドキュメントに表示されるすべての名前とテキストを文字列に変換する必要もあります。将来的には、上位層がこれらのデータをEXIドキュメントに表示される型付きの値として直接使用できるようになれば、より効率的になる可能性があります。たとえば、上位層で型付きデータが必要な場合、文字列形式を使用するとパフォーマンスが低下する可能性があるため、型付きデータを直接サポートする拡張APIを使用すると、EXIで使用した場合のパフォーマンスが向上する可能性があります。
「既存のAPIでEXIを使用しますか?パフォーマンスは向上しません!(すべてを書き直さない限り)」と理解しています。
例としてJavaエコシステムを取り上げましょう。
最新のJDK6にはたくさんのXMLAPIがあります(主要なJDKリリースごとに、ますます多くのXML APIが追加されています)。私が判断できる限り、それらのほとんど(すべてではないにしても)はメモリ内のDOMツリーを使用しています。または、XMLデータを変換/処理/検証/ ...するためのシリアル化された(「テキスト」)表現。
EXIの導入により、これらのAPIはどうなると思いますか?
ご意見ありがとうございました。
EXIを知らない人のために:http ://www.w3.org/XML/EXI/
xml-serialization - さまざまなバイナリ xml ツールの選択に関するアドバイス
私の要件は、xmlファイルをバイナリ形式に圧縮し、送信して、解析を開始する前に(非常に高速に)解凍することです。
かなりの数のバイナリ xml プロトコルとツールが利用可能です。EXI (効率的な xml 交換) は他のものよりも優れていることがわかりました。オープン ソース バージョンの Exificient を試してみたところ、優れていることがわかりました。
Google プロトコル バッファと facebook の倹約について聞いたことがあります。
または、EXI よりも良いものがあれば教えてください。
また、DOM、SAX、および Stax と比較して優れた解析パフォーマンスを実現する優れた XML パーサー VTD-XML があります (自分で試したことはありません。Google で調べていくつかの記事を読んだだけです)。
両方の長所、最高の圧縮 + 最高の解析パフォーマンスが必要ですが、何か提案はありますか?
EXI に関してもう 1 つ、デコードされた XML ファイルの解析が高速であるとなぜ EXI が主張できるのでしょうか。DOM、SAX、または Stax によって解析されているためですか? デコードされたバージョンを読み取るための別のバイナリ パーサーがあれば、私はこれが正しいと信じていたでしょう。私が間違っている場合は修正してください。
また、EXI 形式の適切な C++ オープン ソース実装はありますか? Java のバージョンは EXIficient から入手できますが、C++ オープン ソースの実装を見つけることができませんか?
アジャイルデルタによるものもありますが、それは商用です。
java - EXIをエンコード/デコードするためのJavaサンプル?
EXIficientまたはOpenEXIを使用して、 EXI (Efficient XML Interchange)ストリームをエンコード/デコードするための Java サンプル プログラムを探しています。
誰か助けてくれませんか?サンプルアプリが見つからないようです。
編集: または、EXIficient または OpenEXI を使用できるようにするドキュメントを誰かが教えてくれれば、それは役に立ちます。javadoc を見つけましたが、どのクラスを使用すればよいかわかりません。
または、@StaxMan が指摘しているように、標準 XML API の 1 つと一緒に使用する適切なトップレベル クラスの特定の言及/議論はありますか?
c# - 効率的なXMLの.NET実装
大規模なデータベースをxml形式でエクスポートしています。このXMLデータは、可能な限り最小の形式に圧縮する必要があります。Efficient XML(EXI)について多くのことを聞いたことがあり、コード内から呼び出すことができるように.NET実装があるかどうか疑問に思っていました...
オンラインリソースが少しまばらに見えるので、誰かがこれの例を持っていますか...
java - EXI圧縮XMLの抽出中のエンコーディングの問題
以下のコードは、 EXIficientを使用してEXIの圧縮と解凍を実行するために必要なセットアップを簡素化する試みです。
以下のテストはで失敗しますERROR: 'Invalid byte 1 of 1-byte UTF-8 sequence.'
これの底に達することができるそこにあるエンコーディングの専門家はいますか?
c++ - C++を使用したEXIの解析
EXI形式のメッセージを解析するC++で使用するものが必要です。私は解決策の形に関して気難しいことはありません。これは、Xercesのようなライブラリ、rapidxmlのようなヘッダーのセット、またはXSDファイルを取り込んでコンテンツに基づいてC /C++ソースを作成するオフラインの「コンパイラ」である可能性があります。
これが不可能なのは、あらゆる形式のJavaソリューションです。EXIficientとOpenEXIに出くわしましたが、どちらもJavaベースのソリューションであり、私の状況には適していません。私は、JVMの「贅沢」がない組み込み環境で作業しています。
android - XML文字列をEXIにエンコードし、WebSocketを介して送信します
まず、クライアントサーバーアーキテクチャを使用しています。クライアントにはandroid、サーバーにはnode.jsを使用しています。これらは、Socket.ioライブラリを介して接続されているため、WebSocketを使用しています。
私が持っている疑問は、JavaからXMLSerializerを使用してXML文字列を生成していることです。これをEXIにエンコードしてサーバーに送信したいのですが、ファイルを使用せずにXML-EXIのエンコードを実行することは可能ですか?文字列から文字列に直接?私が見るすべての例は、私のXMLがファイル内にあり、出力を別のファイルに入れたいと想定しているためです。もう1つの疑問は、EXIを文字列として送信できるかどうかです。クライアントとサーバー間の通信はすでに確立していますが、文字列を送信するだけなので、ファイル全体を送信できるかどうかはわかりません。その場合、送信されるデータの量に違いはありますか?
ios - iPadでEXI形式のxmlに書き込む
ipad アプリで w3c 形式の xml ファイルを読み書きする必要があります。以前のアプリでは、GDataXML を使用して基本的な xml ファイルを読み取ったところ、必要に応じて正確に機能しました。同じ GDataXML を使用して、w3c 形式の xml ファイルを読み書きすることはできますか? それとも別のクラスが必要ですか?
編集: 読み書きする必要がある形式はEfficient XML Interchange (EXI)です。
exi - タグなしで EXI ファイル (効率的な XML AgileDelta) をデコードする方法
HTMLファイルを効率的なXMLでエンコードおよびデコードしようとしました。デコーダーが結果ファイルの先頭にタグを追加しないようにするにはどうすればよいですか? ここに私が使用しているコードがあります:
ファクトイのいくつかのプロパティを変更しようとしましたが、役に立ちませんでした。例えば:
java - Nagasena/OpenExi: 属性に < を指定して xml をエンコードする
C# で Nagasena エンコーダーを実装しました。
そして、単純で有効なxmlウィッチのエンコードに問題があります<>または<>
:
TransmogrifierException: Nagasena.Sax.TransmogrifierException: End of document is not expected で終わるだけです。
私は C# 実装を使用しているので、Java 実装で問題をテストしました。問題なく動作しています。そのため、いくつかのオプションを変更しようとしましたが、何も役に立ちませんでした。
と置き換え<Text><</Text>
て<Text><![CDATA[<]]></Text>
から<Booo id="6001<" />
削除すると<
- <Booo id="6001" />
、エンコードは成功しました。ただし、属性では cdata を使用する可能性はなく、 <> が含まれている場合、または<>
エラーになります。
ながせなライブラリのデバッグをするつもりですが、何か有益なアドバイスがあればよろしくお願いします。
どうも