這一篇咱們講「類名稱」頁籤 的配置功能,您將瞭解到:如何爲Xml元素指定對應的類名稱及脫殼功能。html

    若是,你沒看過這個系列的第一篇文章,請先去看這篇文章,不然你指定看不懂這篇。 XML代碼生成器——XMLFACTORY 簡介(一)數據庫

脫殼功能十分強大,所提供的靈活性,足以媲美手寫代碼。先看樣本XML:post

  <Student>
    <Name>小雷</Name>
    <Birthday>1982-06-29</Birthday>
    <Education School="清華大學" Major="計算機"/>
  </Student>

打開頁面:http://www.codingfactory.net/Page/XmlFactory/client/XmlFactory_Flex.htmlurl

把上面的XML粘到樣本XML中,點「NEXT」直到顯示「類名稱」頁籤;以下圖所示:spa

注意紅色方框圈中的地方,咱們分別按照A,B兩種不一樣方案進行操做,請比對生成的實體類.net

A方案 B方案
把文本Education改爲Educ
點擊「NEXT」直到彈出「生成代碼」頁面
把Education刪去
點擊「NEXT」直到彈出「生成代碼」頁面
複製代碼
public class Student
{
    public String Name{ get; set; }
    public DateTime Birthday{ get; set; }
    public Educ Education{ get; set; }
}

public class Educ
{
    public String School{ get; set; }
    public String Major{ get; set; }
}
複製代碼
複製代碼
public class Student
{
   public String Name{ get; set; }
   public DateTime Birthday{ get; set; }
    public String EducationSchool{ get; set; }
   public String EducationMajor{ get; set; }
}
複製代碼

     A方案很好理解,把元素<Education>映射爲實體類Educ;而B方案並無爲元素<Education>生成對應的實體類,可是元素<Education>所包函的信息:School,Marjor並無被忽略,而是映射成爲了Student類的屬性。3d

     若是你打算把Student的信息存到數據庫裏(用一張表,而不是二張表),我想B方案生成的實體類更方便一些。咱們把B方案的操做稱做「脫殼」操做。由於沒有爲<Education>這個「殼」生成實體類,但卻保留了School,Major這樣的「核」。因此稱爲「脫殼」。脫殼操做雖然沒有爲元素<Education>定義類,但當你把Student類對象序列化爲Xml時,成生的Xml仍然包函<Education>元素,因此你不用擔憂脫殼後生成的Xml結構有變化。code

    XmlFactory代碼生成器的脫殼功能比較強大,不僅能夠脫一層殼,而是能夠脫去好幾層的殼,直到暴露出核心的數據。看下面這個例子。htm

複製代碼
  <table>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
    </tr>
    <tr>
      <td>4</td>
      <td>5</td>
      <td>6</td>
    </tr>
  </table>
複製代碼

很明顯,惟一有價值的數據是元素<td>中的值。如下A,B形式,你想要那種實體類呢?對象

A形式 B形式
複製代碼
public class Table
{
    public List<List<Int32>> Trtd{ get; set; }
}
//說明一下
//table.Trtd[0][0]的值是1
//table.Trtd[0][1]的值是2
//table.Trtd[1][2]的值是6
複製代碼
複製代碼
public class Table
{
    public List<Tr> Tr{ get; set; }
}

public class Tr
{
    public List<Td> Td{ get; set; }
}

public class Td
{
    public Int32 Value{ get; set; }
}
複製代碼

    若是你須要A形式的實體類,那就粘貼上面的Xml到「樣本Xml」中,而後,一直點"Next"按鈕,直到彈出「生成代碼」頁面。若是你須要B形式的實體類,請在「類名稱」列中,填寫:Tr Td。以下圖:

    最後聲明一下:不是全部元素,均可以進行脫殼操做。什麼狀況下能夠進行脫殼操做呢?我只能簡單的說「類名稱」頁籤中,第二,第三個表格中的元素,均可以進行脫殼;而第一個表格中的元素必須映射爲類。至於爲何,我就不展開了,有興趣的朋友,可參考官方文檔中「脫殼定義及規則」章節。http://www.codingfactory.net/Page/XmlFactory/Help/help_cn.htm