您的位置:首页 > 其它

数据字典生成工具之旅(3):PowerDesign文件组成结构介绍及操作

2014-07-14 12:52 441 查看
从这篇开始将正式讲解整个重要部分的实现细节,本篇讲解Pdm文件的解析。其实PDM文件就是XML文件,可以用Editplus或者VS打开查看。了解到这一点之后大家就能猜到,可以用解析XML的方式读取PDM文件了。

阅读目录

PDM文件结构及在本工具的存储方式

PDM文件读取

XML文件操作增删改查

工具源代码下载

学习使用

回到顶部

PDM文件结构及在本工具的存储方式

下面看看用Editplus读取出来的XML,这里我只关注Table节点,这是一个表的最小节点了。

<o:Table Id="o97">
<a:ObjectID>41144D16-B6B3-43CD-8B36-57CBAFB26654</a:ObjectID>
<a:Name>预算资源面积月事实表</a:Name>
<a:Code>y_FactYsRoomAreaMonth</a:Code>
<a:CreationDate>1366118213</a:CreationDate>
<a:Creator>huzhiwen</a:Creator>
<a:ModificationDate>1396403208</a:ModificationDate>
<a:Modifier>gongw</a:Modifier>
<a:TotalSavingCurrency/>
<c:Columns>
<o:Column Id="o361">
<a:ObjectID>F03D6EA9-183A-4B6A-BD52-7B711572AA45</a:ObjectID>
<a:Name>ID</a:Name>
<a:Code>ID</a:Code>
<a:CreationDate>1366118213</a:CreationDate>
<a:Creator>huzhiwen</a:Creator>
<a:ModificationDate>1381212250</a:ModificationDate>
<a:Modifier>huzw</a:Modifier>
<a:DataType>bigint</a:DataType>
<a:Identity>1</a:Identity>
<a:Mandatory>1</a:Mandatory>
</o:Column>
</c:Columns>
<c:Keys>
<o:Key Id="o380">
<a:ObjectID>F9089FCD-D9E9-4FB0-92F3-B7268D49526D</a:ObjectID>
<a:Name>PK_Z_DIMROOMMONTH</a:Name>
<a:Code>PK_Z_DIMROOMMONTH</a:Code>
<a:CreationDate>1366118213</a:CreationDate>
<a:Creator>huzhiwen</a:Creator>
<a:ModificationDate>1366118213</a:ModificationDate>
<a:Modifier>huzhiwen</a:Modifier>
<c:Key.Columns>
<o:Column Ref="o361"/>
</c:Key.Columns>
</o:Key>
</c:Keys>
<c:PrimaryKey>
<o:Key Ref="o380"/>
</c:PrimaryKey>
<c:ClusterObject>
<o:Key Ref="o380"/>
</c:ClusterObject>
</o:Table>


可以看到这些节点都是带命名空间,所以我们解析这段XML的时候需要加上命名空间。表的<a:Name>(中文名称),<a:Code>(表名),<c:Columns>是所有列节点集合,具体到每一列的<o:Column>则有中文名称,英文名称,主键,是否空,默认值,是否自增等关键信息了。
参考上面的设计,添加了四个实体,ColumnInfo,TableInfo,PkKeyInfo,PhysicalDiagramInfo

public void Add()
{
Console.WriteLine("item节点添加test=123属性");
XmlNodeList xmlNodeList = null;
XmlAttribute xmlAttribute = null;
xmlNodeList = XmlDoc.SelectNodes("/root/item");
foreach (XmlNode xmlNode in xmlNodeList)
{
xmlAttribute = XmlDoc.CreateAttribute("test");
xmlAttribute.Value = "123";
xmlNode.Attributes.Append(xmlAttribute);
}
Console.WriteLine("item节点添加子节点<test name='123'>");
xmlNodeList = XmlDoc.SelectNodes("/root/item");
XmlElement xmlNewNode = null;
foreach (XmlNode xmlNode in xmlNodeList)
{
xmlNewNode = XmlDoc.CreateElement("test");
xmlNewNode.SetAttribute("name", "123");
xmlNewNode.InnerText = "123";
xmlNode.AppendChild(xmlNewNode);
}
XmlDoc.Save("C:\\123.xml");
Console.WriteLine(XmlDoc.InnerXml);
}


View Code

回到顶部

工具源代码下载

目前总共有经过了七个版本的升级,现在提供最新版本的下载地址

数据字典生成工具V2.0安装程序最新安装程序
数据字典生成工具源代码最新源代码
http://code.taobao.org/svn/DataDicPubSVN最新源码共享地址
回到顶部

学习使用

如果你使用了该工具,或者想学习该工具,欢迎加入这个小组,一起讨论数据字典生成工具、把该工具做的更强,更方便使用,一起加入147425783 QQ群

更多数据字典生成工具资料请点击数据字典生成工具专题

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。

如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

因为,我的写作热情也离不开您的肯定支持。

感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是焰尾迭 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: