問題タブ [xml-serialization]
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.
c# - c#のxml-serializationで空の配列をスキップする属性はありますか?
c#のxml-serializationで空の配列をスキップする属性はありますか?これにより、xml-outputの人間が読みやすくなります。
c++ - MFC C++ で XmlSerializer を作成する
MFC アプリケーション プロジェクトにこのロジックを実装したいと考えています。これは C# で次のように記述されています。
これをC++で書くにはどうすればよいですか?
ruby-on-rails - Rails で to_xml シリアライザーの新しいデフォルト プロパティを設定する
Rails では、一連のコントローラーをコーディングして XML を生成しています。次のように、多くのプロパティを to_xml に渡すたびに:
自分のアプリで to_xml が呼び出されるたびに適用される新しいデフォルト プロパティとしてこれらを設定して、自分自身を繰り返す必要がないようにする方法はありますか?
c# - オブジェクトを (その属性とともに) xml にシリアル化する方法はありますか?
クラスを作成します (FormElement と呼びます)。そのクラスには、データ要素 (名前、シーケンス番号、値 — これは単なる文字列など) と共に持っているメタデータのようないくつかのプロパティが必要です。
このクラスには、Validation Application Block Validation クラスの属性があります。
それをxmlにシリアライズしてデシリアライズしたい。検証アプリケーション ブロックの属性を含むクラスのすべてのプロパティがシリアル化に耐えられることを確認します。
いくつかの提案?
c# - XmlSerializer で型を [Serializable] とマークする必要がないのはなぜですか?
C# では、インスタンスをシリアル化する場合、オブジェクトの型を属性XmlSerializer
でマークする必要はありません。[Serializable]
ただし、 などの他のシリアル化アプローチでは、クラスをまたはDataContractSerializer
としてマークする必要があります。[Serializable]
[DataContract]
シリアル化要件に関する標準またはパターンはありますか?
delphi - TClientDataset: 'Fieldtype は XML ではサポートされていません。
複雑なオブジェクトの配列を表す一連のデータを TClientDataset にロードしました。でも走ろうとすると
それは好きではありません:
プロジェクト testing.exe で例外クラス EDBClient が発生し、「Fieldtype は XML でサポートされていません。」というメッセージが表示されました。
これは、2 つの理由から、必要以上に有用ではありません。まず、どのフィールドまたはどのフィールド タイプがサポートされていないかについては言及されていません。次に、実際の保存はブラックボックス DLL 内で行われています。
このデータセットで使用しているフィールド タイプは、整数、文字列、ブール値、および整数フィールドの配列を保持するいくつかの TArrayFields のみです。シリアル化するのがそれほど難しいとは思いません。なぜこれが機能しないのか、誰にも分かりますか?
c# - Windows Mobile のデータ戦略
私は Windows Mobile で C# アプリケーションを開発していますが、ほとんどの WM アプリケーションと同様に、シリアライゼーション戦略を決定するときはいつも行き詰まります。デスクトップの世界では、かなり堅牢なカスタム xml シリアライザーを既に開発しているので、あまり心配していませんが、WM の世界では、リフレクションのパフォーマンスが低下するため、使用したくありません。
そのため、データ アクセス オブジェクト (DAO) インターフェイスに対してすべてを開発するので、xml、レジストリ、sqlce などにシリアル化するためのさまざまな実装を簡単に交換できます。 Dictionary<>) を使用し、データを永続化したい場合は XmlSerializer DAO を使用し、すべてが完了したら本格的な sqlce DAO に移動します。
ただし、私の最新のアプリでは、XmlSerializer DAO を使用できません。これは、インターフェイスであるプロパティを処理する (処理しない) 方法が悪いためです。IE、私は List< IBar > Bars プロパティを含む Foo オブジェクトを持っていますが、XmlSerializer はそれをシリアル化できません (ただし、独自のカスタム xml シリアライザーを簡単に開発できましたが、図に行くことができました)。
WM 用のアプリケーションを開発するのに役立つ DAO 戦略は何ですか? アプリの成熟度レベルが異なる複数の DAO を事前に計画していますか? 本格的な sqlce DAO から始めますか? XmlSerializer を使用できない場合、すばやく簡単に永続的なシリアル化 DAO をお勧めしますか?
c# - .Net XmlSerializer: 内部テキストである CDATA を逆シリアル化する
標準の .Net XmlSerializer を使用した CDATA デシリアライゼーションに問題があります。
更新: 外部システムから XML を取得しましたが、その形式に影響を与えることができないため、CData を属性の別の要素に含めることはできません。
シリアル化すると、次のようになります。
逆シリアル化は、オブジェクトを元の状態に復元しません。
シリアル化されているクラスは次のとおりです。
失敗するテストは次のとおりです。
ここで同じ問題を見つけましたが、答えはありません: XmlSerializer、XmlAnyElement、および CDATA
.net - DataContractSerializerの逆シリアル化の深さを制御できますか?
DataContractSerializerを介してファイルにシリアル化したかなり大きなオブジェクトグラフがあります。ここで、これらのファイルのリストをユーザーに提示して、選択できるようにします。このリストでは、ルートオブジェクトのプロパティであるファイルに関する詳細の一部を示します。ルートノードのプロパティを表示することだけに関心があるので、グラフ全体をメモリにロードしたくありません。
ファイルからルートオブジェクトをプルして子をスキップできるように、逆シリアル化の「深さ」を制御する方法を知っている人はいますか?他の場所では生のXML操作を行っていないため、ファイルを生のXMLとして扱うことは避けたいと思います。これは、同期を維持する必要があるコードのもう1つのブランチになります。
今の私の唯一のアイデアは、関心のあるプロパティのみを含み、子は含まない互換性のある「summary」オブジェクトを作成し、ファイルをそのオブジェクトに逆シリアル化することです。子はsummaryオブジェクトに関連しないため、これは子をスキップする必要があります。
これを達成するためのより良い方法はありますか?
更新/明確化:属性は私が探している答えではありません。1つには、オブジェクトが最初にシリアル化されたときに「余分な」プロパティがファイルに含まれるのを防ぐことができます。
第二に、彼らは私がやろうとしていることよりも永続的です。最終的には、この時点ではなく、ファイル全体を逆シリアル化したいと思います。ユーザーがインポート用に選択するファイルの要約リストを表示しようとしています。インポート中に、私はすべての子供と孫が必要になります。手順1ではやり過ぎです。これらは潜在的に大きなファイルであるため、ヘッダー情報を表示できるようにいくつかのファイルを完全に逆シリアル化しても機能しません。
うまくいけば、それは元の質問についての混乱を解消します。
c# - XMLシリアル化の空のコレクションが自己終了しない
誰かがこの厄介だが些細な(必要性の点で)質問で私を助けることができるかどうか疑問に思います。オブジェクトのコレクションを内部に含むオブジェクトがあります
基本的に私が経験している問題は、xmlシリアライザーを通過させると
内部クラスがないのになぜそれが出てしまうのか疑問に思います
InnerClassesをセルフクローズタグとして配置しないのはなぜですか?
上記のコードが配置されることは理解していますが、実際のコードリスト全体を配置することはできません。(私が知っているあまり使用されていません)私はそれを引き起こす可能性のあるものについてのポインタを探しています。
なぜデフォルトでこれを行わないのか、私は一生理解できません。
どこを見ればよいかについての入力に感謝します。