問題タブ [xml-nil]
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.
java - jaxb は java.lang.Long と java.math.BigDecimal を別の方法で非整列化します
のアンマーシャリングを比較しています
これらの入力が与えられた場合:
セッターが呼び出されるかどうかを観察しています。入力 2 で。無効な値 - セッターは呼び出されません。入力 1 で。空のタグ - longSetter は呼び出されず、bigDecimalSetter は呼び出されます。なぜ?
そしてもちろん入力時
両方のセッターが呼び出されます。これが必要です。
したがって、問題は次のとおりです。bigDecimalSetter が呼び出されたときに、理由がxsi:nil="true"
なのか、タグの値が無効なのか (BigDecimal ではない) はわかりません。そのための回避策はありますか?
xml - XML: 無効な要素ではありません
次の XSD スニペットがあります:
<xs:element name="SSN" nillable="true" minOccurs="0"><xs:annotation><xs:documentation>SSN</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="\d{9}"/></xs:restriction></xs:simple
Type>
そして対応する XML:
この XML で SSN を検証しようとしています。しかし、次のエラーが表示されます。
これを修正するにはどうすればよいですか? 私はこれのさまざまなバリエーションを試しました。
xsi の更新を試みましたが、これによりこのエラーが発生し、xsi は XML ファイルで指定されていないため、参照できないと思います。
ブライアン、私はあなたの xsi コードを今試しましたが、これは私にこのエラーを与えます:
スタイルシートを含めたときに、この同じエラーが発生しました。
wcf - SOAP に PropertyChanged ノードがない場合、INotifyPropertyChanged オブジェクトの逆シリアル化が失敗するのはなぜですか?
メソッドへの唯一のパラメーターとして事前定義されたオブジェクトを受け取る 1 つのメソッドだけで構成される通知リスナー Web サービスを構築しています。このオブジェクトとそのコンポーネント オブジェクトが定義されている送信者の API へのサービス参照があり、サービス参照の自動生成コードでは、ほとんどまたはすべてのオブジェクトが System.ComponentModel.INotifyPropertyChanged を実装しています。したがって、それぞれに PropertyChanged メンバーがあり、WSDL では次のように表示されます。
これらのオブジェクトが INotifyPropertyChanged を実装する必要がある理由がわかりません。この PropertyChanged 要素は、リスナー サービスを呼び出す通知サービスによって送信されることはありません。PropertyChanged には属性 nillable="true" があるため、これで問題ありません。しかし、何らかの理由で、PropertyChanged 属性が必要であることを示すたびにエラーがスローされます。/2004/07/MyNamespace:DocuSignEnvelopeInformation . The InnerException message was 'Error in line 5 position 2162. 'EndElement' 'DocuSignEnvelopeInformation' from namespace ' http://schemas.datacontract.org/2004/07/MyNamespace' は想定されていません。要素 'PropertyChanged'.' が必要です。詳細については、InnerException を参照してください。」
nillable としてマークされている場合、要素 'PropertyChanged' が期待されるのはなぜですか? 私が読んでいることから、nillable は属性が xml でオプションであることを意味します。これは真実ではありませんか?
java - Jackson: XML-Binding - Null と空の文字列の処理
新しい Jackson-API は便利な XML バインディングを提供します (たとえば JAXB のように) が、XML で NULL 値を表すためのデファクト スタンダードである典型的な "xsi:nil" 属性を Jackson にシリアル化させる方法が見つかりません。 ? これが間違っている場合は修正してください;-)
JAXB では、Java 変数に @XMLElement(nillable=true) という注釈を付けることで、これを簡単に行うことができます。
参照: http://blog.bdoughan.com/2012/04/binding-to-json-xml-handling-null.html
ジャクソンはこれを行うことができますか?
Jackson-XML については、https ://github.com/FasterXML/jackson-dataformat-xml を参照してください。
java - JAXB で nil="true" を使用して XML 要素を非表示にする
私の Response.xsd には、次のような多くの要素があります。
から生成JAXBClasses
しまし.xsd
た。結果:
私の WebService 応答の構築:
生成された応答では、次のようになります。
しかし、私は完全にタグがまったくないことを期待carModel
しています。完全にスキップしたい
何が間違っているのですか?Whyはデフォルトでwhenにnull
なります。nil
nillable = false
よくわかりませんが、@Xstian に求めていたものは次のとおりです。
私の一部web.xml
:
私のWEB-INF/services/CarService/META-INF/services.xml
:
xml - 値 AND xsi:nil="true" を持つ XSD 要素
XSD要素があります
タイプの作者:
ベースの作成者名:
タイプ ID:
問題は、常に ID を持っていることですが、AuthorName が null になることがあります。
その状況で私が得るものは次のとおりです。
私が取得したいものは次のとおりです。
私の実際の状態では、スキーマの互換性に問題があります。XSDモデルを変更せずにやりたいことをすることは可能ですか? Author を AuthorName と AuthorId に分割することは下位互換性がなく、かなり大きなアプリケーションを書き直す必要があります。
追加情報 (何が役に立ち、何が役に立たないのかよくわかりません): アプリケーションは J2E にあり、xsd を JAXB にバインドし、XJC を使用してクラスを生成しています。
生成されたクラスの作成者: