問題タブ [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.
.net - XMLデシリアライズの問題
Webサービスから送信された次のxmlがあります。.NETを使用して逆シリアル化していますが、フォーマットが間違っているという例外が発生します。There is an error in XML document (2, 2)
さて、私がそれを正しく理解していれば、それが最初の<error>
ノードを見つけているのは好きではありません。
私のコードは次のようになります。データはString
上記のXMLのバージョンです。
cResponseMessage
単純に、属性を持つクラスと、属性XMLRoot
を持つ2つのプロパティXMLElement
です。ここでは特別なことは何もありませんが、機能したくありません。
どんな助けでも素晴らしいでしょう。
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 にうんざりしていて、クラスが次のようにタグ付けされている場合でもエラーが発生します。
xml-serialization - XmlSerializer は Nullable に逆シリアル化できますか?
nil="true"
type のプロパティを持つクラスにマークできる要素を含む XML メッセージをデシリアライズしたいと考えていましたint?
。それを機能させる唯一の方法は、NullableInt
実装する独自の型を作成することでしたIXmlSerializable
。それを行うより良い方法はありますか?
問題の全容と解決方法をブログに書きました。
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'を反映するエラーが発生しました。]..。
コード:
soap - XML のチルダ
チルダは XML SOAP メッセージで正当な文字ですか? SAXParseException:Content not allowed in prolog が表示されます。間違ったツリーを鳴らしてしまった場合に備えて、SOAP メッセージのほとんどを含めました。
c# - 新しいクラスを作成せずに文字列のリストをシリアル化しますか?
次のような文字列のコレクションを含む XML 構成ファイルがあります。
これらの「モノ」は、ユーザーが選択できるアプリのフロント エンドのオプションになります。
私の質問は、シリアライゼーションを適切に使用するためにモノのクラスを作成する必要がありますか、または属性を使用して文字列をリストに直接読み取る方法はありますか?
例 (本文とプライベート変数は簡潔にするために削除されています。これは .NET 2.0 です):
c# - XML Linq と直接デシリアライズ / XML Linq からデシリアライズ
XmlDocument/temp 文字列をラウンドトリップせずにオブジェクトを逆シリアル化する方法はありますか? 次のようなものを探しています。
ただし、それを行うとエラーが発生します(コンテンツに空白以外の文字を追加することはできません。)要素でクラスをラップすると、書き込まれたコンテンツが <element>ConsoleApplication17.MyClass</element> であることがわかります-エラー理にかなっています。
自動的にデシリアライズする拡張メソッドがありますが、それは私が探しているものではありません (これはクライアント側ですが、より最適なものが必要です)。
何か案は?
c# - リスト プロパティの XML タグを抑制する方法
シリアライズ時にリストプロパティタグを避けることは可能ですか?
Foo をシリアライズすると (コメントを除く):
必要な出力:
.net - コレクションの XmlSerialization
次の Xml 構造をシリアル化したい:
しかし、私はリンクテキストで発見しました
上記のリンクからの引用: ...
- Q: コレクション クラスのすべてのプロパティがシリアル化されないのはなぜですか?
- A: XmlSerializer は、IEnumerable または ICollection インターフェイスを検出した場合にのみ、コレクション内の要素をシリアル化します。この動作は仕様です。唯一の回避策は、カスタム コレクションを 2 つのクラスにリファクタリングすることです。そのうちの 1 つは、純粋なコレクション型の 1 つを含むプロパティを公開します。
...
他の Xml 属性を持つコレクションをシリアル化または逆シリアル化できないことを発見した後...推奨される回避策は、コレクションを持つ要素を他の属性を持つ要素から分離することです...つまり、代わりに次のように構造を変更します。
なぜそうなのか誰か知っていますか?または、これを行う他の方法がある場合は?
.net - XmlSerializer使用時のFileNotFound例外
を使用して型(List<T>
TがXmlRootAttributeでマークされたクラスであるジェネリック)をXMLにシリアル化しようとするとXmlSerializer
、aFileNotFoundException
がスローされ(場合によっては)、シリアル化が失敗します。
XmlSerializer
アプリケーションを実行しているユーザーのTempフォルダーにランダムなファイル名で一時ファイルを作成しようとしているようですが、どういうわけかファイルが削除されてしまいます。
誰かこれを見た?回避策はありますか?