問題タブ [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 投票する
2 に答える
2413 参照

.net - XMLデシリアライズの問題

Webサービスから送信された次のxmlがあります。.NETを使用して逆シリアル化していますが、フォーマットが間違っているという例外が発生します。There is an error in XML document (2, 2) さて、私がそれを正しく理解していれば、それが最初の<error>ノードを見つけているのは好きではありません。

私のコードは次のようになります。データはString上記のXMLのバージョンです。

cResponseMessage単純に、属性を持つクラスと、属性XMLRootを持つ2つのプロパティXMLElementです。ここでは特別なことは何もありませんが、機能したくありません。

どんな助けでも素晴らしいでしょう。

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

c# - カスタム DateTime XML シリアル化

サーバーでもクライアント時間でもない特定のタイムゾーンで DateTime をシリアライズできるようにしたいと考えています。基本的に、どの時間帯でも構いません。.Net2.0 Web サービスで DateTime シリアライゼーションをオーバーライドすることは可能ですか?

xsd.exeでxmlschemaをコンパイルするので、XmlSchemaImporterを使ってみました。

OnSerialize の例は、値の変更を示していますが、出力形式の変更は示していません。

XmlSchemaImporter を gac にロードし、xsd.exe を実行し、必要なクラスを持つコードを生成しました...しかし、そのクラスは属性であり、反映できません。

[InvalidOperationException: タイプ Cuahsi.XmlOverrides.W3CDateTime のメンバー 'metadataDateTime' をシリアル化できません。XmlAttribute/XmlText を使用して複合型をエンコードすることはできません。]

生成コード

XmlSchemaImporter

補遺 1: DateTimeoffset にうんざりしていて、クラスが次のようにタグ付けされている場合でもエラーが発生します。

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

xml-serialization - XmlSerializer は Nullable に逆シリアル化できますか?

nil="true"type のプロパティを持つクラスにマークできる要素を含む XML メッセージをデシリアライズしたいと考えていましたint?。それを機能させる唯一の方法は、NullableInt実装する独自の型を作成することでしたIXmlSerializable。それを行うより良い方法はありますか?

問題の全容と解決方法をブログに書きました。

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

c# - dateTimeにシリアル化する方法

任意のタイムゾーンのDateTimesを取得するために作業しています。DateTimeOffset、文字列、およびXmlElement属性を使用しています。これを行うと、次のエラーが発生します。

[InvalidOperationException:'dateTime'はXmlElementAttribute.DataTypeプロパティの無効な値です。dateTimeをSystem.Stringに変換できません。]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model、String ns、ImportContext context、String dataType、XmlAttributes a、Boolean repeats、Boolean openModel、RecursionLimiter limiter)+450

[InvalidOperationException:タイプ'System.String'を反映するエラーがありました。]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model、String ns、ImportContext context、String dataType、XmlAttributes a、Boolean repeats、Boolean openModel、RecursionLimiter limiter) +1621
System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberMapping accessor、FieldModel model、XmlAttributes a、String ns、Type choiceIdentifierType、Boolean rpc、Boolean openModel、RecursionLimiter limiter)+8750
System.Xml.Serialization.XmlReflectionImporter.ImportFieldMapping( 、FieldModelモデル、XmlAttributes a、String ns、RecursionLimiterリミッター)+139
System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMappingマッピング、StructModelモデル、ブール型openModel、String typeName、RecursionLimiterリミッター)+1273

[InvalidOperationException:プロパティ'creationTimeX'を反映するエラーが発生しました。]..。

コード:

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

soap - XML のチルダ

チルダは XML SOAP メッセージで正当な文字ですか? SAXParseException:Content not allowed in prolog が表示されます。間違ったツリーを鳴らしてしまった場合に備えて、SOAP メッセージのほとんどを含めました。

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

c# - 新しいクラスを作成せずに文字列のリストをシリアル化しますか?

次のような文字列のコレクションを含む XML 構成ファイルがあります。

これらの「モノ」は、ユーザーが選択できるアプリのフロント エンドのオプションになります。

私の質問は、シリアライゼーションを適切に使用するためにモノのクラスを作成する必要がありますか、または属性を使用して文字列をリストに直接読み取る方法はありますか?

例 (本文とプライベート変数は簡潔にするために削除されています。これは .NET 2.0 です):

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

c# - XML Linq と直接デシリアライズ / XML Linq からデシリアライズ

XmlDocument/temp 文字列をラウンドトリップせずにオブジェクトを逆シリアル化する方法はありますか? 次のようなものを探しています。

ただし、それを行うとエラーが発生します(コンテンツに空白以外の文字を追加することはできません。)要素でクラスをラップすると、書き込まれたコンテンツが <element>ConsoleApplication17.MyClass</element> であることがわかります-エラー理にかなっています。

自動的にデシリアライズする拡張メソッドがありますが、それは私が探しているものではありません (これはクライアント側ですが、より最適なものが必要です)。

何か案は?

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

c# - リスト プロパティの XML タグを抑制する方法

シリアライズ時にリストプロパティタグを避けることは可能ですか?

Foo をシリアライズすると (コメントを除く):

必要な出力:

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

.net - コレクションの XmlSerialization

次の Xml 構造をシリアル化したい:

しかし、私はリンクテキストで発見しました

上記のリンクからの引用: ...

  • Q: コレクション クラスのすべてのプロパティがシリアル化されないのはなぜですか?
  • A: XmlSerializer は、IEnumerable または ICollection インターフェイスを検出した場合にのみ、コレクション内の要素をシリアル化します。この動作は仕様です。唯一の回避策は、カスタム コレクションを 2 つのクラスにリファクタリングすることです。そのうちの 1 つは、純粋なコレクション型の 1 つを含むプロパティを公開します。

...

他の Xml 属性を持つコレクションをシリアル化または逆シリアル化できないことを発見した後...推奨される回避策は、コレクションを持つ要素を他の属性を持つ要素から分離することです...つまり、代わりに次のように構造を変更します。

なぜそうなのか誰か知っていますか?または、これを行う他の方法がある場合は?

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

.net - XmlSerializer使用時のFileNotFound例外

を使用して型(List<T>TがXmlRootAttributeでマークされたクラスであるジェネリック)をXMLにシリアル化しようとするとXmlSerializer、aFileNotFoundExceptionがスローされ(場合によっては)、シリアル化が失敗します。

XmlSerializerアプリケーションを実行しているユーザーのTempフォルダーにランダムなファイル名で一時ファイルを作成しようとしているようですが、どういうわけかファイルが削除されてしまいます。

誰かこれを見た?回避策はありますか?