由于打算研究微软的OPEN XML,决定先进行一下补习,研究一下xsd在OFFICE SYSTEM中的应用。
OFFICE从2000就开始支持XML,但到2003才达到真正的功能可用(实用、适用),到2007又有了一个质的飞越。
如何收集数据,整理数据,分析数据对任何单位都是一个很值得探讨的问题。下文简要叙述了如何在OFFICE中使用构架来进行数据的标准化。废话不多说了,直接转入正题 : }
一、先建立一个XSD
先按需要做一个XSD如下图,由于个人爱好这里使用的是XMLSpy,其实用VS也很容易做。
以下是导出的详细说明:
Schema 配送单.xsd
schema location: | C:/Documents and Settings/Administrator.GTJDELL/桌面/xml研究/配送单.xsd |
attribute form default: | unqualified |
element form default: | qualified |
targetNamespace: | http://blog.csdn.net/sjzwl |
Elements |
配送单 |
element 配送单 element 配送单/配送店名 element 配送单/要货日期 element 配送单/要货类别 element 配送单/发货日期 element 配送单/发货人 element 配送单/承运人 element 配送单/收货人 element 配送单/添加时间 element 配送单/配送单明细 element 配送单/配送单明细/产品名称 element 配送单/配送单明细/要货数量 element 配送单/配送单明细/发货数 element 配送单/配送单明细/收货数 element 配送单/配送单明细/存货量 XMLSpy Schema Editor http://www.altova.com/xmlspy
diagram | |||
namespace | http://blog.csdn.net/sjzwl | ||
properties |
| ||
children | 配送店名 要货日期 要货类别 发货日期 发货人 承运人 收货人 添加时间 配送单明细 | ||
annotation |
| ||
source | <xs:element name="配送单"> <xs:annotation> <xs:documentation>产品申请配送单</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="配送店名" type="xs:string"/> <xs:element name="要货日期" type="xs:date"/> <xs:element name="要货类别" type="xs:string"/> <xs:element name="发货日期" type="xs:date"/> <xs:element name="发货人" type="xs:string"/> <xs:element name="承运人" type="xs:string"/> <xs:element name="收货人" type="xs:string"/> <xs:element name="添加时间" type="xs:dateTime"/> <xs:element name="配送单明细" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="产品名称" type="xs:string"/> <xs:element name="要货数量" type="xs:int"/> <xs:element name="发货数" type="xs:int"/> <xs:element name="收货数" type="xs:int"/> <xs:element name="存货量" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:string | ||||
properties |
| ||||
source | <xs:element name="配送店名" type="xs:string"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:date | ||||
properties |
| ||||
source | <xs:element name="要货日期" type="xs:date"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:string | ||||
properties |
| ||||
source | <xs:element name="要货类别" type="xs:string"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:date | ||||
properties |
| ||||
source | <xs:element name="发货日期" type="xs:date"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:string | ||||
properties |
| ||||
source | <xs:element name="发货人" type="xs:string"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:string | ||||
properties |
| ||||
source | <xs:element name="承运人" type="xs:string"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:string | ||||
properties |
| ||||
source | <xs:element name="收货人" type="xs:string"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:dateTime | ||||
properties |
| ||||
source | <xs:element name="添加时间" type="xs:dateTime"/> |
diagram | |||||||||
namespace | http://blog.csdn.net/sjzwl | ||||||||
properties |
| ||||||||
children | 产品名称 要货数量 发货数 收货数 存货量 | ||||||||
source | <xs:element name="配送单明细" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="产品名称" type="xs:string"/> <xs:element name="要货数量" type="xs:int"/> <xs:element name="发货数" type="xs:int"/> <xs:element name="收货数" type="xs:int"/> <xs:element name="存货量" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:element> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:string | ||||
properties |
| ||||
source | <xs:element name="产品名称" type="xs:string"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:int | ||||
properties |
| ||||
source | <xs:element name="要货数量" type="xs:int"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:int | ||||
properties |
| ||||
source | <xs:element name="发货数" type="xs:int"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:int | ||||
properties |
| ||||
source | <xs:element name="收货数" type="xs:int"/> |
diagram | |||||
namespace | http://blog.csdn.net/sjzwl | ||||
type | xs:int | ||||
properties |
| ||||
source | <xs:element name="存货量" type="xs:int"/> |
XML Schema documentation generated by
完成XSD的设计后就可以在OFFICE中使用了(当然,也不限于此)
二、InfoPath中用使用
在设计表单模板时选XML或架构,然后选先前设计好的那个XSD,进行设计就好了。
三、EXCEL中的应用
在开发工具中设置“源”,根据需要设计一个报表,将相应单元格进行映射即可。
四、WORD中的使用
由于在WORD中使用构架收集数据较少用,且确实没前两项实用,就贴个图吧。
五:导入数据库
先看看前面导出的XML吧,使用架构后,导出的数据是完全依照架构生成的。
将这个数据导入ACCESS中:
数据库中的数据:
哈哈,完成了。由于上面的用xsd设计的比较简单,很多应有的约束什么的都没设,暂时还达不到应用的程度,但从以上过程可以看出,在OFFICE中应用构架还是蛮简单的。
具体在何时用,怎么用就看大家的了。
更多参考见MSDN:
Microsoft Office Word 2003 中的 XML
http://www.microsoft.com/china/msdn/library/office/office/XMLMsWord03.mspx?mfr=true
Microsoft Office Word 2003 中的 XML
http://www.microsoft.com/china/msdn/library/office/office/XMLOfficeWord2003.mspx?mfr=true
Microsoft Office Word 2003 XML:备忘录样式示例
http://www.microsoft.com/china/msdn/library/office/office/OFFwd2003wd11xml.mspx?mfr=true
在 Excel 2003 中创建 XML 映射
http://www.microsoft.com/china/msdn/library/office/office/ExcelXMLMapping.mspx?mfr=true