問題タブ [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.

0 投票する
1 に答える
859 参照

.net-3.5 - 名前空間によってバージョン管理されている場合、xml を適切なオブジェクトにシリアル化する最良の方法は何ですか?

私の質問は次のとおりです。

名前空間によってバージョン管理された xml があります。この受信した xml を適切なオブジェクトにシリアル化したいのですが、これを行う唯一の方法は、xml を 2 回処理する必要があることです。最初に名前空間を検出し、次に検出された名前空間に基づいて適切な型のオブジェクトにシリアル化します。これは私には非常に非効率に思えます.ジェネリックなどを使用して、「if namespace == x then serialize to that」チェックなしで適切なタイプのオブジェクトを取得する方法が必要です。

以下は、これを達成するために私が知っている唯一の方法のサンプルです。より良い、またはより効率的な方法はありますか?

ありがとう

0 投票する
3 に答える
14808 参照

c# - C# Web サービス オブジェクト プロパティで文字列の最大長を強制するにはどうすればよいですか?

たとえば、このクラスでは、姓/名に許可される文字数を制限したいと考えています。

姓または名の文字列制限を強制する方法はありますか?クライアントがこれを送信する前にシリアル化すると、長さの制限に違反すると、クライアント側でエラーがスローされますか?

更新: これは、無効なデータを受け取った後ではなく、WSDL 自体で特定して強制する必要があります。

0 投票する
2 に答える
916 参照

c# - クラスを変更せずに XML シリアル化命令を追加する方法

シリアル化されたクラスを変更せずに XML シリアル化命令を追加する賢い方法はありますか?

デフォルトのシリアル化が気に入らず、クラスを変更できません。クラスを継承し、Shadows (VB.NET) を使用してプロパティを再実装する (シリアル化命令を使用) ことを検討していましたが、多くの重複コードが発生し、見栄えが悪くなります。

私が探している理想的な解決策は、基本的に、すべてのシリアル化命令を別のファイルに保存する方法です。

0 投票する
3 に答える
14853 参照

xml - VB.NET で簡単に XML シリアル化するためのオブジェクトを作成するにはどうすればよいですか?

私は VB.NET で小さなアプリケーションを作成していますが、いくつかのクラスを XML に書き込んで「保存」機能として使用できるようにしたいと考えています。XSD ファイルを使用して、XML との間で非常に簡単にシリアル化できる VB クラスを生成するのを見てきました。自分でクラスを作成しているだけなので、準拠する必要がある既存の XML 形式がある場合、これを行うにはどうすればよいでしょうか?

0 投票する
13 に答える
51028 参照

java - Javaシリアライゼーションの最良の代替手段はどれですか?

私は現在、あらゆる種類のオブジェクト (実装を制御できない) を永続化する必要があるプロジェクトに取り組んでいるため、これらのオブジェクトは後で回復できます。

開発時にライブラリのユーザーを制限できないため、ORM を実装できません。

私たちの最初の選択肢は、Java のデフォルトのシリアライゼーションでそれをシリアライズすることでしたが、ユーザーが同じオブジェクトの異なるバージョンを渡し始めたときにオブジェクトを回復するのに多くの問題がありました (属性の型、名前の変更など)。

XMLEncoder クラス (オブジェクトを XML に変換する) を試してみましたが、機能が不足していることがわかりました (たとえば、列挙型をサポートしていません)。

最後に、JAXB も試しましたが、ユーザーはクラスに注釈を付ける必要があります。

良い代替手段はありますか?

0 投票する
3 に答える
6273 参照

c# - XmlSerializer 両方のタグを使用するために空の変数をシリアル化しますか?

シリアル化された xml クラスを Soap Envelope にロードできるようにしたいと考えています。私は始めているので、内部を埋めていないので、次のように見えます:

次のように表示したい:


私が書いたクラスはこれです:

他の人が個々の要素でそれを望むかもしれないので、私はこれを例として使用しています. これは単純に違いないと確信していますが、悲しいことに、これに適切なキーワードがわかりません。

いつもお世話になっております。

[編集] この命令を使用しようとするとエラーが発生します

「ルート要素が見つかりません」というエラーが表示されます。

[編集] オブジェクトをシリアル化した後、memOut.Position = 0 を設定しなかったというエラーを修正しました。

0 投票する
6 に答える
114196 参照

.net - xmlns = "..."を取得せずにオブジェクトをXMLにシリアル化するにはどうすればよいですか?

XML名前空間も自動的にシリアル化せずに.NETでオブジェクトをシリアル化する方法はありますか?デフォルトでは、.NETはXSIおよびXSD名前空間を含める必要があると考えているようですが、私はそれらをそこに含めたくありません。

0 投票する
3 に答える
13584 参照

c# - 要素が見つからない場合、C# で XmlSerializer を使用して逆シリアル化に失敗することはありますか?

XmlSerializer を使用して、C# で xml にオブジェクトを読み書きしています。現在、属性XmlElementを使用しXmlIgnoreて、オブジェクトのシリアル化を操作しています。

必要な xml 要素が xml ファイルにない場合でも、オブジェクトは正常に逆シリアル化されます (xml -> object)。特定のフィールドが「必須」であることを (できれば属性を介して) 示すにはどうすればよいですか?

これは私が現在使用しているもののサンプルメソッドです:

私の理想的な解決策は、属性のようなものを追加することXmlRequiredです。

また、XmlSerializer の動作を操作するために使用できる属性についての適切なリファレンスはありますか?

0 投票する
4 に答える
130912 参照

c# - XML-Serializable クラスにパラメーターなしのコンストラクターが必要な理由

Xml シリアライゼーションを行うコードを書いています。以下の機能で。

引数がパラメーターなしのコンストラクターを持たないクラスのインスタンスである場合、例外がスローされます。

未処理の例外: System.InvalidOperationException: CSharpConsole.Foo は、パラメーターなしのコンストラクターがないため、シリアル化できません。System.Xml.Serialization.TypeDesc.CheckSupported() で System.Xml.Serialization.TypeScope.GetTypeDesc (型の種類、MemberInfo ソース、ブール値の directReference、ブール値の throwOnError) で System.Xml.Serialization.ModelScope.GetTypeModel (型の種類、 System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type , XmlRootAttribute root, String defaultNamespace) の Boolean direct Reference) System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultName space) の System.Xml.Serialization. XmlSerializer..ctor(型 type)

xml シリアル化を成功させるために、パラメーターなしのコンストラクターが必要なのはなぜですか?

編集: cfeduke の回答に感謝します。パラメーターなしのコンストラクターは、プライベートまたは内部にすることができます。

0 投票する
4 に答える
10510 参照

apache-flex - Flex - ネストされたオブジェクト構造の XML シリアライゼーションとデシリアライゼーション

私たちの Flex アプリは、リクエストとレスポンスをオブジェクト グラフとして扱いたいと考えています (そこに異常はありません)。たとえば、レスポンスはビューのモデルになり、いくつかのネスト レイヤーを持つ構造になります。

** 理想的には、XML や AMF などの異なるメッセージ形式に同じクライアント (およびサーバー) 側のオブジェクトを使用し、プラグ可能なシリアライゼーション/デシリアライゼーション レイヤーを使用したいと考えています (!)

AMF には [RemoteClass(alias="samples.contact.Contact")] を使用してクライアントとサーバーのシリアル化と照合がありますが、XML に相当するものはないようです。

クライアントから HTTPService を介して送信するために、オブジェクト グラフを XML にシリアル化するきちんとした方法を (やや楽観的に) 探しています。

応答の場合、デフォルトの「オブジェクト」と「E4X」は、一部の逆シリアル化を提供します。これは便利ですが、もちろん、AMF の場合のように XML を特定の AS クラスにアンパックする機能はありません。

助言がありますか?(オブジェクトを XML または XMLList としてラップ/キャストすることについて 1 つのアイデアが思い浮かびましたが、これは機能していないようです)

アップデート:

これらのライブラリはどちらも便利そうで、いつか使用する可能性が非常に高いです。

今のところ、どのような場合でも使用している AMF3 シリアライゼーション用のメタデータ セットを再利用するシンプルさが本当に必要です ([RemoteClass],[Transient])。

.. したがって、現時点で最良のオプションは AMFX です - XML を使用した AMF 転送に Flex Data Services を使用します - mx.messaging.channels.amfx パッケージのクラス - 現時点での唯一の欠点は、Externalizable クラスが Hex バイト ストリームに変換されることです -そして ArrayCollection は外部化可能です! (サブクラスで内部配列をシリアル化することで回避策を期待しています..)

それが誰かに役立つことを願っています..