混在内容
一つの要素内にテキストノードと子要素が並列して混在している混在内容のサポートを実装しました.<any>
と同様にテキストは他のDataRecord
オブジェクトと一緒にDataRecord[String]
オブジェクトの中に保存され,mixed
という値で呼ばれます.
次のようなスキーマがあるとすると,,
<element name="Element3">
<complexType mixed="true">
<choice maxOccurs="unbounded">
<element ref="ipo:Choice1"/>
<element ref="ipo:Choice2"/>
<any namespace="##other" processContents="lax" />
</choice>
</complexType>
</element>
使用例のコードは以下のようになります.
val subject = <foo xmlns="http://www.example.com/IPO" xmlns:ipo="http://www.example.com/IPO">foo<Choice2>2</Choice2>bar</foo> val obj = Element3.fromXML(subject) obj match { case Element3(Seq(DataRecord("http://www.example.com/IPO", "Choice2", 2)), Seq(DataRecord(null, null, "foo"), DataRecord("http://www.example.com/IPO", "Choice2", 2), DataRecord(null, null, "bar"))) => case _ => error("match failed: " + obj.toString) } val document = obj.toXML(null, "foo", subject.scope)