Word 二〇〇七 XML 解压缩格式

Word 二〇〇七 XML 解压缩格式

你恐怕听 IT 部门的人手说过“规范格式”的 XML。标准格式的 XML
文件遵守一组管理 XML 的、特别严峻的平整。若是文件不听从这一个法规,XML
就能停下运维。比方,在地方的代码示例中,每八个上马标志都有照拂的扫尾标志,由此该示例固守一种标准格式的平整。假若你删除多少个标识,然后尝试在一个Office
程序中开荒该公文,您将会看见一条错误新闻,而且该程序会阻止你使用该文件。

近来为止没什么难题,但是,假使 XML 数据未有布局会如何呢?援救 XML 的
Office 程序有艺术帮助你管理数据。比如,假设你在 Word
中开荒未有增大构造的 XML 文件,Word
将同期出示标识和数码,并同意你在文件创设者或 IT
部门提供转变的情景下使用调换。最少,您能够查看文件中的标识和数码。

Word XML格式的吐放打包约定

怒放打包约定钦命了Word
二零零五文书档案中新文件格式的结构。有关开放打包约定的越来越多消息,请查看盛放打包约定,XML
Paper
Specification 也利用那个约定。

为了知道八个Word
2007文书档案的结构,您必需驾驭这种新文件格式中的多少个着重组件:

1.

部件项。每个部件项都对应于包解压后的一个文件。例如,如果您右击一个Microsoft Office Excel工作簿,然后选择提取它,您将会看到一个workbook.xml文件,一些 sheetn.xml文件,和其它的一些文件。这些文件都是包中的文档部件。

2.

内容类型项。内容类型项描述了一个文档部件存储了什么类型的文件。例如,image/jpeg表示了一个JPEG图片。这种信息允许Microsoft Office,和第三方工具,来决定包中任意部件的内容,并处理它的内容。

3.

关系项。关系项指定文档部件的集合如何组合为一个文档。这种方法指定了一个源部件和一个目标部件之间的连接。关系在文档包中存储为XML部件,例如/_rels/.rels。

下边包车型地铁章节解释了那几个零件如何结合八个Office XML格式的文本。

Word 二〇〇七 文书档案构件

为了便利使用第三方的历程和工具来建设构造和装配Word
2005文书档案,Word将包的源委分成非常多逻辑部件,每一种零器件存款和储蓄了八个特定的文书档案部分,譬如:

1.

注释

2.

格式定义

3.

列表定义

4.

页眉

5.

图表

6.

关系图

7.

文档内容

8.

图片

在包中,Word使用单独的文本来表示文书档案中的每一种部分。这几个构件能够由XML文件组成,譬如满含标志的Word
XML格式的文书档案零部件,甚至附加的内容,举个例子二进制的图形或嵌入的OLE文件。全体的那一个都带有在包中。可是,更为重要的是,通过开放打包约定定义的片段
例外,实际的文件目录构造是不管三七三十四的。

包汉语件的涉及,实际不是文本结构,决定了文件的得力。您能够另行排布和命名ZIP容器个中的预制构件,只要保险科学的改良关系,并且承诺申明档案零部件之间
正确的涉及即可。假如波及是不利的,那么就可以正确的张开文书档案。Word
贰零零伍文书档案的启幕文件布局只是Word创立的暗中认可布局,它使得您能够轻巧的永久文件的结合。只要你不利的涵养了事关,那么你可以改良这种文件构造。

比如,在Word
二零零五中,容器文件表示了二个文档。在容器文件中,按序排布的零件组成了文书档案。比方,八个Word
2006文件也许会(但不光限于)包罗一步下列目录和文件:

1.

[Content_Types].xml。 描述出现在文件中的每个内容类型。

2.

rels folder。 存储所有指定部件的关系部件。

3.

rels file。 描述了文档结构中的起始关系。它称为关系部件。

4.

datastore folder。 包含了文档中的自定义XML数据部件。自定义XML数据部件是一个XML文件,您可以将节点绑定到文档的内容控件中。

5.

item1.xml file。 包含了一些文档中出现的数据。例如自定义XML数据部件。

6.

docProps folder。 包含了应用程序的属性部件。

7.

App.xml file。 包含了应用程序特定的属性。

8.

Core.xml file。 包含了所有基于开放打包约定文档格式的通用文件属性。

图 1 展现了贰个演示Word 二〇〇七文档的文本构造。

图片 1

图 1. 四个超级Word 二零零五 文书档案的档期的顺序化文件构造

你能够替换整个文书档案零件,从而更改Word 二〇〇六文书档案的从头到尾的经过、属性、或格式。

Word 二零零六 内容类型

上边提到过,每一个文书档案构件都有三个特定的剧情类型。三个零零器件的从头到尾的经过类型描述了这种文件类型的内容。举例,XML零件包蕴了Word
XML格式定义的标志,而内容类型能够帮助你解析它的组合。

独占鳌头的从头到尾的经过类型是以word
application开端,然后是厂家的名目。在内容类型中,word vender
被简写为vnd。全体剧情类型都被钦赐为以application/vnd.ms-word初步。如若剧情类型是叁个XML文件,那么它的ULacrosseI将以+
xml结尾。别的的非XML内容的类型,举例图片,则未有这种结尾。下边是一些一流的内容类型:

1.

application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml

它是一个描述Word文档中的尾注文档部件的内容类型。其中,+xml表示它是一个XML文件。

2.

application/vnd.openxmlformats-package.core-properties+xml

它是一个描述核心文档属性部件的内容类型。其中,+xml表示它是一个XML文件。

3.

image/png

图片的内容类型。其中没有+xml部分 - 表示内容类型不是XML文件。

你能够利用具备的那个剧情类型,来拍卖叁个Word 2006文本的原委。Microsoft
Windows Software Development Kit (SDK) for Beta 2 of Windows Vista and
WinFX Runtime
Components包蕴了System.IO.Packaging命名空间,它同意你添Gavin书档案零部件、获取和更新内容,恐怕创造关系。举个例子,使用Microsoft
WinFX
System.IO.Packaging类,您可以采纳PackagePart.CreatePart方法创设多个文书档案构件。CreatePart方法须求八个字符串参数;多少个是新构件的U翼虎I,另一个是零器件的原委类型,如下所示:

PackagePart packageNewPart = package.CreatePart(uriResourceTarget, "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml");

那么些代码示例使用存款和储蓄在uriResourceTarget变量中的UGL450I和象征格式的源委类型,成立了一个文书档案构件。有关PackageParts的越多音信,请查看Microsoft
Windows SDK中的 PackagePart
Class援引文档。

固定内容类型

上面的章节富含了二个故事情节类型中冒出可是频仍的列表。Word
2006在包中通过二个文书或零器件描述各个内容类型。在包根目录下的[Content_Types].xml文件,列出了文书档案中的每一种零器件,以致它的
ContentType对象。举个例子,您大概会看出如下的从头到尾的经过:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">

<Override PartName="/word/footnotes.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"/>

<Default Extension="png" ContentType="image/png"/>

<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>

<Default Extension="xml" ContentType="application/xml"/>

<Override PartName="/word/document.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>

<Override PartName="/word/numbering.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>

<Override PartName="/word/styles.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>

<Override PartName="/word/endnotes.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"/>

<Override PartName="/docProps/app.xml" ContentType= "application/vnd.openxmlformats-officedocument.extended-properties+xml"/>

<Override PartName="/word/settings.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/>

<Override PartName="/word/footer2.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"/>

<Override PartName="/docProps/custom.xml" ContentType= "application/vnd.openxmlformats-officedocument.custom-properties+xml"/>

<Override PartName="/word/footer1.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"/>

<Override PartName="/word/theme/theme1.xml" ContentType= "application/vnd.openxmlformats-officedocument.theme+xml"/>

<Override PartName= "/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"/>

<Override PartName= "/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"/>

<Override PartName="/word/header1.xml" ContentType= "application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml"/>

<Override PartName="/docProps/core.xml" ContentType= "application/vnd.openxmlformats-package.core-properties+xml"/>

</Types>

您能够在目录布局中重命名或重新排布全数这一个零件。列出的这一个零器件都在它们暗许的职位,并且存有默许的称号,进而得以轻便的判断出它们是何许文件。

在包根目录下的Word目录中,包蕴了描述文书档案的非常首要的信息。在此个目录中,您大概会意识有的意味着可用内容类型的构件。

将文书档案零器件相配到内容类型

文件格式中各类XML文件都以三个文书档案零件。假诺您详细的查阅这种新格式的文书,您会意识有个别索引布局,或文书档案构件,举个例子/word/fontTable.xml和word/styles.xml。这么些文件的名目清楚的代表了它们的指标(譬如,字体表和格式零器件)。可是,您
也能够改正它们的称呼。因为在[ContentTypes].xml文件中的<Types>成分相配了种种内容零件,它们表示分歧的剧情类
型。[ContentTypes].xml大概由下列代码组成:

<Override PartName=”/word/styles.xml” ContentType=
“application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml”/><Override
PartName= “/docProps/core.xml”
ContentType=”application/vnd.openxmlformats-package.core-properties+xml”/>

此中,/word/styles.xml文档零件具有/vnd.openxmlformats-package.core-properties+
xml内容类型。/docProps/core.xml零部件具备application/vnd.openxmlformats-
package.core-properties+xml内容类型。

文书档案零部件间的涉嫌

事关是包中更为主要的零器件之一,因为它们记录了文书档案零器件之间的连年。您能够在包的目录布局中重命名或移动零部件,可是必得通过涉及正确的维系文件的管用。

涉嫌表示了文件包中七个构件的逻辑连接。比方,根文书档案零器件具有一个http:
//schemas.openxmlformats.org/package/二〇〇五/relationships/header类型到
application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml
内容类型零部件的涉及。那代表构件之间的关联是,指标零器件是源零器件的页眉。此外,该内容零器件表示这是内容是一个Word
二〇〇七页眉。那么些页眉零器件大概也会具有它和谐的涉及。举例,若是页眉中隐含多少个JPEG图片,那么页眉恐怕会一个从http:
//schemas.openxmlformats.org/officeDocument/二〇〇五/relationships/image到
image/jpeg内容类型的涉嫌。

在包中,关系通过方可在三个誉为_rels的目录中举办固化。为了追寻从随机零器件生成的涉及,请查找_rels目录。倘使那几个构件具备一点点提到,那
么_rels目录中校会含有贰个文书,它是你的源零部件的名号加.rels增加名。举例,假诺您愿意查找officeDocument零部件是还是不是有所关系,在那之中可能会持有三个http:
//schemas.openxmlformats.org/officeDocument/二〇〇七/relationships/officeDocument
内容类型。暗中同意地,这些零件会具备一个/word/document.xml的U讴歌MDXI,因为你能够打开包中的/word/_rels目录,全部查找贰个叫
做document.xml.rels的文书。

每一种关系都具备二个源和二个对象。源是关系命名的零器件。举个例子,document.xml.rels中有着的关系都将document.xml作为它
们的源。每一种.rels文件都满含三个<relationships>成分,个中你可以为各种指标关系找到二个应和的<
relationship>成分,当中蕴涵目的关系的id,那就是指标零器件,况且会包罗指标零器件的剧情类型。上面是
document.xml.rels文件中二个优秀的<relationships>成分:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">

<Relationship Id="rId3" Type= "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target= "docProps/app.xml"/>

<Relationship Id="rId2" Type= "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target= "docProps/core.xml"/>

<Relationship Id="rId1" Type= "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target= "word/document.xml"/>

<Relationship Id="rId4" Type= "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties" Target= "docProps/custom.xml"/>

</Relationships> 

留意,各类relationship成分首先钦点了事关的id,然后是目的的内容类型,最后是目的文书档案零器件。

底子:微软官方的分解XML与Word    

除此而外利用正式格式的符号数据之外,XML
系统平时还运用其余三种组件:架商谈转换。以下部分将介绍那三种组件的干活格局。

-无论在哪些程序中,请在“开拓工具”选项卡上单击“XML”组中的其余可用命令。

Microsoft Office Word 二〇〇六提供了一种新的暗许文件格式,叫做Microsoft
Office Word XML格式(Word XML格式)。这种格式基于吐放打包约定(Open
Packaging
Conventions),XML
Paper
Specification (XPSState of Qatar也是借助那些约定。Microsoft
Office 97到Microsoft Office
贰零零叁中应用的二进制文件格式照旧能够当做一种保存格式来行使,不过它不是保留新文书档案时的暗许文书档案。

 

XML 还不受平台的限制,这代表,无论硬件或操作系统是何许,为运用 XML
而营造的任何程序都可以读取和拍卖 XML 数据。举例,利用科学的 XML
标志,就足以使用桌面程序展开和拍卖大型机中的数据。别的,无论是什么人制造了
XML 数据体,您都得以透过若干 Microsoft Office 二〇〇四 和 Microsoft Office
职业版 二〇〇六 程序(包罗 Microsoft Office Access 二〇〇五、Microsoft Office
Word 二〇〇七、Microsoft Office InfoPath 二零零七 和 Microsoft Office Excel
二〇〇五)管理肖似的数额。由于 XML
具有可移植性,它已产生用于在数据库和客户桌面之间调换数据的最受迎接的本领之一。

讲授:效用区是 Microsoft Office Fluent 顾客界面包车型客车一有的。

从文书档案中分别内容

合作到内容类型的文书档案零部件由下列UEnclaveI钦赐:

application/vnd.openxmlformats-officedocument.wordprocessingml.main+xml

它定义了超级多文书档案构造。在启用宏的文书中,这些零部件相称到application/vnd.ms-
word.template.macroEnabledTemplate.main+xml,它定义了绝大多数文书档案布局。在头里[Content-
Types].xml文件的代码示例中,内容类型相称到/word/document.xml目录中的document.xml零件。

其一零件包涵的XML与Word
二〇〇四中央银行使的WordprocessingML子集是相像的。还会有部分图片、属性和字体的成分,它们描述了文书档案的宗旨布局。单独的零器件描述了文书档案的全体组件,比方页眉,页脚,列表和尾注。暗中同意地,大非常多这个构件都是上边内容类型文件的后继:

application/vnd.openxmlformats-officedocument.wordprocessingml.main+xml

借使您稳重的查阅上边的[Content-Types].xml代码示例,您会意识内部列出了广大那样的零器件。

将内容与格式的辞别,使得大家得以比原先的版本更为轻便地程序化管理二个文书档案的要素。使用WinFX
System.IO.Packaging类型,您能够通过几行代码来修正文件,并且实践上边包车型客车职分:

1.

使用一个新的logo替换成百上千的文档中使用的旧logo。简单的定位图片,删除它,然后使用新图片替换它。

2.

更新服务器上所有文档中的页脚,从而更新公司名称。

3.

更改服务器上所有文档中的文本样式,从而使用一种新的公司字体。

当然,还足以创造更多的减轻方案。通过这种内容的告辞,定位零部件进行编写制定将在比Word
二〇〇三中的WordprocessingML尤其简便易行。在WordprocessingML文件中,整个文书档案被描述在二个硬汉的XML文件个中。深入深入分析那一个文本同一时候校勘它是这一个拮据的。何况依旧特别冒险的,因为纵然现身了一个不当,那么将会破坏整个文书档案。相反,假若二个Word
贰零零陆文书档案中的一某个产生了破坏,那么文书档案剩余的构件仍为能够准确的开荒。

怎么使用 XML?

可扩充标志语言 (XML卡塔尔 (可扩充标志语言
(XML卡塔尔:标准标志语言 (S土霉素L卡塔尔的一种浓缩格局,开采职员可用其创立自定义标签,为重新整建和提供音信提供了灵活性。))使您能够以以前不容许或很难完结的方法组织和管理文书档案和多少。使用自定义 XML
布局,可以从平日商业文书档案中识别并提取出一定的商贸数据片段。

诸如,一张带有客商名址的支票,也许一份富含上季度财务结果的报表都不再是静态文书档案。它们包括的新闻能够被传送到四个数据库或在文书档案外界的其他地方重用。

将 Microsoft Word 文书档案以标准 XML
格式保存的力量推动将内容从文书档案范畴中分离出来。内容可用于自动化数据收罗和用场改造进程。内容能够比较轻巧地被找寻到,以致被
Word 以外的任何进度所改正,举例基于服务器的数额管理。

因为 Word 能够将其文档表示为
XML,通过将来自各样源的多少放在一同,自动化的基于服务器的进度能够在运行中生成
Word
文书档案。那样的文书档案能够超轻巧地按期更新,扫除了连带数据的手动寻找和不供给的重复键入。

您不用明白创造标准格式 XML 的法规,但真正要求牢牢记住:独有在 XML
数据采纳了行业内部格式的状态下,才可以在前后相继和种类里头分享该数额。假诺有个别XML 文件不能够开荒,则该公文超级大概不是专门的职业格式的。

1、在 Excel 或 Word 中,单击“Office
按钮”图片 2,然后单击“Excel
选项”或“Word 选项”,具体决计于所展开的前后相继。 2、单击“个性化”。
3、在“使用应用程序名称
时接纳的首要推荐项”下,选择“在功用区显示‘开垦工具’选项卡”,然后单击“分明”。

在1998年发布的,Microsoft通过Microsoft Office Excel
二〇〇三中的SpreadsheetML,将XML引进了Microsoft Office
XP个中。SpreadsheetML是多个好好的初阶,可是它从未提供完全真实的功力。在下叁个本子的Microsoft
Office成品中,Microsoft Office Word
2000引进了WordprocessingML。WordprocessingML是不行首要的一步,因为它是Microsoft
Office提供的首先个完全真实的XML文件格式。通过Microsoft Office
二零零四,您能够分析WordprocessingML文件,向在那之中加多、更新或拍卖数量。可是,依旧存在着部分限量。例如,您必需将二进制文件(举例图
片)编码为XML文件中的文本,假使文件中包涵大批量图形的话,那自然会扩展文件的尺寸。此外,Word
二零零三直接将装有自定义XML数据嵌入到描述文书档案的WordprocessingML当中。这样使得自定义XML难于访谈和拍卖全数的外表过程。

XSL 转换

开荒或保存 XML 文书档案时,可以行使以一定格式呈现 XML 数据的 XSL 转变(XSLT卡塔尔国 (XSL 调换(XSLTState of Qatar:一种文件,用于将 XML 文档调换为任何项指标文书档案,举例 HTML 或
XML。设计本意是用作 XSL
的一有些应用。)卡塔尔文件。譬如,您或者有所叁个将数据呈现为标准的
XSLT,和另叁个将长久以来数量显示为零部件清单(此中计算了数量和价格)的 XSLT。

图片 3张开文书档案时行使的
XSLT)

叁个 XML 文书档案恐怕全体多少个与其涉及的
XSLT。假若是这么,则必得接纳你愿意利用的 XSLT 来呈现文书档案。那是在“XML
文档”
窗格中做到的,该窗格列出了可用的 XSLT(数据视图)。

一旦未有与 XML 文书档案关联的 XSLT,则 Word 会使用其暗中认可 XSLT
或“仅数据视图”展开该文书档案。

假如文书档案附加了 Word XML 布局,纵然该文书档案具有叁个与其涉及的 XSLT,Word
打开文书档案时也不会选取该 XSLT。

 注释   能够定义解决方案将 XSLT 与特定类型的 XML
文书档案关联,并非手动地接纳XSLT。供给在“构造库”中举行这种涉及,可以在“模板和加载项”对话框(“工具”菜单)的“XML
架构”
选项卡上访谈“结构库”。

 

图片 4保存文书档案时接收的
XSLT)

 

 

 

 

实现:

     XML Schema
是用来定义XML的布局文件,能够称之为XSD文件。而在Word及Excel中都补助加多结构文件,那样大家就可以利用XSD定义模板构造,将模板保存成XML格式,在表格生成时能够运用该模板生成对应的报表。

 

首先第一步:生成对应的XSD文件。

    

   
依据面向对象的思忖,现许多都以运用三层结构,固然多层在这之中央也是变,在Model层中有各实例对象倘诺使用NHibernate、第三方的数量访谈层(如动软生成的)、微软的实体框架集等均是能够的。它只是根据实体类生成对应的构造文件。具体操作是:先将实体层在vs情状中生成dll文件,然后在VS的授命提示中输入【xsd 
dll文件的路子】生成成功后,能够见见三个后缀为Xsd的文书路线。

 

第二步:生成模板

     
找到路线下的xsd文件,若是是塑造Word文书档案的模版(本文以Word为例),在新建的doc文件中,工具-模板与加载项-构造-增添结构 
采用刚刚生气的xsd文件,填上UPRADOL(命名空间)如:
,最佳是选上
允许以XML文件保留无论是或不是管用。这样就足以查看见XML构造,然后在相应的岗位插入相应的成分,同期还足以调度格式如:

图片 5

 

产生后将其另存为xml格式文件,这样模板就办好了。

 

其三步:生成报表

此处笔者使用了三个密闭好了的类,其调用情势

 

图片 6图片 7代码

        lxp.ASC_BusinessReportThingInfo asc = new lxp.ASC_BusinessReportThingInfo(1);//实体类
        asc.Name = "叩亦杰";
        asc.Birthday = DateTime.Now;
//设置类中属性值

        WordReport rt = new WordReport(@"E:\Word与Exsel报表学习\Word\lxp.xml");//加载模板,Excel时就使用ExcelReport
        rt.InputData(asc);//加入数据
        rt.Save(@"E:\Word与Exsel报表学习\Word\生成的lxp.doc");//保存

 

 

那样客户可自定生成的报表基本落到实处。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图