如何使用FSharp创建XML属性(而不是元素)?
发布时间:2020-12-16 23:12:54 所属栏目:百科 来源:网络整理
导读:我需要创建如下所示的 XML: record id="100000000000000000" type="Message" ...a bunch of xml .../record 相反,使用我正在使用的FSsharp代码,我得到了这个: record typeMessage/type id118448/id ...a bunch of xml..../record 这是我目前正在做的事情:
我需要创建如下所示的
XML:
<record id="100000000000000000" type="Message"> ...a bunch of xml ... </record> 相反,使用我正在使用的FSsharp代码,我得到了这个: <record> <type>Message</type> <id>118448</id> ...a bunch of xml.... </record> 这是我目前正在做的事情: type record( id:int,sr:sender,recipients: recipient array,atts : attachment array,con : conversation,madeDate : creation) = let mutable id: int = id let mutable typ = "Message" let mutable creation = madeDate let mutable sender = sr let mutable recipients = recipients let mutable conversation = con let mutable attachments = atts public new() = record( -1,sender(-1,"Joe","Plumber","Joe@plumber.com"),Array.empty,conversation(),creation()) [<XmlElement("type")>] member this.Type with get() = typ and set v = typ <- v [<XmlElementAttribute("id")>] member this.Id with get() = id and set v = id <- v [<XmlElement("creation")>] member this.Creation with get() = creation and set v = creation <- v [<XmlElement("sender")>] member this.Sender with get() = sender and set v = sender <- v [<XmlArrayAttribute("recipients")>] [<XmlArrayItem(typeof<recipient>,ElementName = "recipient")>] member this.Recipients with get() = recipients and set v = recipients <- v [<XmlElement("conversation_info")>] member this.Conversation with get() = conversation and set v = conversation <- v [<XmlArrayAttribute("attachments")>] [<XmlArrayItem(typeof<attachment>,ElementName = "attachment")>] member this.Attachments with get() = attachments and set v = attachments <- v 解决方法
我想你想要XmlAttributeAttribute而不是XmlElementAttribute.
注意 [<XmlElement>] 和 [<XmlElementAttribute>] 是一回事(就像C#一样). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |