我对微软Office开发一无所知,但我想构建一个插件原型,允许用户从远程存储库中保存和打开文档。也许以后可能会在服务器上构建一个版本控制系统 - 但是服务器端部分是关于它的最简单部分(在我的例子中)。也许我应该专注于让它一次用于一个办公应用程序 - 比如MS WOrd(除非人们认为excel更容易使用)。然后让我们定位Office 2007(就像我安装的那样)。
存储库将存储Tagged文档(许多类型的许多标签)。保存文档AddIn需要先显示对话框并允许标记。 AddIn需要通过SOAP或REST api向我们的服务器提交一个标签数组和文档(Base 64编码?)。几个问题
一旦保存了许多文件,我们将需要一种检索文件/打开文件的方法。所以我认为我需要一个允许浏览文件的对话标签类型 - >标记值(树可能有更多级别,但希望从那里开始)。 ONce文件打开我认为API需要
为了最好地可视化Word和服务器之间交换的数据,我们可以设想一个XML结构,如:
<document name="recapOfTheGame.doc">
<tags>
<tag type="team">New York Yankees</tag>
<tag type="team">Boston Redsox</tag>
<tag type="city">New York</tag>
<tag type="city">Boston</tag>
<tag type="type">recap</tag>
</tags>
<content encoding="base64">AKJSGHKASHGFKSJDHGFKSJDHGFSKDJFHGSKJDGSKDJGSKDJFHGSDKJFH</content>
</document>
存储库资源管理器应该在树中的多个位置显示此文档;以下是一个存储库的示例,该存储库在五个位置显示此文档(基于标记):
repository
+ untagged <not shown in XML>
- team
+ Tampa Bay Rays <not shown in XML>
- Boston Resox
recapOfTheGame.doc
- New York Yankeeys
recapOfTheGame.doc
- city
+ Tampa Bay <not shown in XML>
- new york
recapOfTheGame.doc
- boston
recapOfTheGame.doc
- type
+ box scores <not shown in XML>
- recaps
recapOfTheGame.doc
我只提供了XML设计以使概念更加切实,我对其他存储标记的方法持开放态度(如果可能的话,在文档中)。基本上我可以在这方面给予任何指导。非常感谢。
我以不同方式询问此问题,以检查回复是否会有所不同,Open WORD Document from Database OR WebService
我接受webDav回答 - 下面是两者之间的共同点,这是露天的行为。
谢谢
答案 0 :(得分:2)
使用WebDAV打开/保存文档;虽然ymmv,办公室也支持这一点。如果您无法使用内置的Office支持,请使用WebDrive,NetDrive等,或构建自己的。
另一种替代方法是SharePoint协议,如果您的存储库支持它。例如,Alfresco克隆了部分内容。这也具有Word中内置客户端的优势。
CMIS比WebDAV更现代,你必须建立自己的客户端(看看Apache Chemistry)。如果你的资源库支持它,那么这可能就是这样;
您也可以通过VSTO使用SOAP或REST,但这些也属于构建您自己的客户类别。
关于标记:您可以将它们作为WebDAV属性传递。将它们作为CustomXML部分放入docx中也是值得的(或者只是文档属性 - 它们具有在Word UI中可见的优点),因此即使移动了文档,也可以使用它们。