2009-07-16 41 views
0

我要送信息太第三方在他們指定的XML格式,一個很普通的工作,我敢肯定。我怎樣才能transfom對象圖到外部XML格式

我有一套XSD文件,並使用XSD.exe創建了一組類型。要生成我域內的XML映射我從類型的值,以第三方類型:

public ExternalBar Map(InternalFoo foo) { 
    var bar = new ExternalBar; 

    bar.GivenName = foo.FirstName; 
    bar.FamilyName = foo.LastName; 

    return bar; 

} 

我會再釋放他們之前使用XmlSerializer生成的文件,可能是檢查他們對XSD。

雖然這種方法非常手動,但我不知道是否有更好的方法使用框架或外部工具來映射數據並創建文件。

+0

手冊?你想只使用拖放來生成它? – Grzenio 2009-07-16 09:06:05

回答

0

的LINQ to XML工作得很好這個...,例如

XElement results = new XElement("ExternalFoos", 
    from f in internalFoos 
    select new XElement("ExternalFoo", new XAttribute[] { 
     new XAttribute("GivenName", f.FirstName), 
     new XAttribute("FamilyName", f.LastName) })); 
0

首先,我假設現有域中的對象屬性映射到第三方類型,除了重複的屬性賦值之外沒有太多操作。

因此,我建議只使用域樹的標準XML序列化(使用XSD爲您的類生成出站模式),然後通過一組XSLT樣式表後處理結果。然後在後處理之後,根據第三方模式驗證生成的XML文檔。

它可能比這更復雜,因爲它確實取決於對象域之間映射的複雜性,但這是我過去成功使用的一種方法。

就GUI工具而言,我聽說過(但並未使用自己)Stylus Studio對於架構到架構映射(屏幕截圖here)非常有用。