私はその要素の特定の属性の制限に適合するxmlビルダーの開発を進めています。たとえば、このPerson要素の唯一の有効な属性は "gender"で、値は "male"または "female"です。強力な型付けされたxml属性の構成(ビルダー)のヒント
今、私は[String:String]
を属性キー/値に使用しています。私は、それぞれの固有の要素属性の要件ごとにこれらの制限を強制する強く型付けされた方法を希望します。
私はこれをすばやく行うために迷っています。どんなアイデアでも大歓迎です。ありがとう!
extension XmlBuilder {
func person(text: String? = "", attributes: [String:String] = [String:String]()) -> XmlBuilder {
fn = compose(fn, { doc in
doc.root.addChild(name: "Person", value: text, attributes: attributes)
return doc
})
return self
}
}
let xml = XmlBuilder()
.person("Jon", attributes: ["gender":"male"])
.construct()
「特定の属性に準拠している」と言ったら、どういう意味ですか? XMLスキーマの使用を意味しますか、それとも別の意味ですか?すべてのXML属性は文字列であることに注意してください。異なるタイプに/から変換したい場合は、いつでも変換を使用する必要があります。 – AlBlue
もっと分かりやすく、ありがとうございます。 – DarthVadar123451