代码之家  ›  专栏  ›  技术社区  ›  akaphenom

保存并打开远程文档

  •  1
  • akaphenom  · 技术社区  · 15 年前

    正在保存

    存储库将存储带标签的文档(通过许多标签,多种类型)。保存文档时,加载项需要首先显示一个对话框并允许标记。加载项需要随文档一起提交一个标签数组(base64编码?)通过SOAP或restapi连接到我们的服务器。几个问题

    1. 这可能吗?如果是的话,关于如何完成的建议?是否有访问二进制数据(流)的机制您正在查看的文档的名称?
    2. 是否已经有了一种我可以利用的远程文档持久性机制?

    一旦保存了大量文档,我们就需要一种检索/打开文档的方法。所以我想我需要一个对话框,允许浏览docucents标记类型->标记值(树可能有更多的级别,但希望从那里开始)。一旦打开文档,我想API需要

    1. 进行RPC调用(SOAP/REST)以检索文档-解码内容(实际文档)并在Word中打开该流(例如)
    2. 我也想把我的标签留在记忆里

    为了最好地可视化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 explorer应该在树中的多个位置显示此文档;下面是一个在五个位置(基于标记)显示此文档的存储库示例:

    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-answere,因为这是两者之间的共同点,也是alfresco所做的。

    1 回复  |  直到 9 年前
        1
  •  3
  •   Community Mohan Dere    13 年前

    看看使用WebDAV来打开/保存文档;Office也支持这一点。如果无法使用内置的Office支持,请使用 WebDrive ,NetDrive等,或构建自己的。

    另一种选择是SharePoint协议,如果您的存储库支持的话。例如,Alfresco已经克隆了其中的一部分。这还有Word中内置客户端的优点。

    CMIS比WebDAV更现代,但是您必须构建自己的客户机(看看apachechemistry)。不过,如果您的存储库支持的话,这可能是可行的;

    您还可以通过VSTO使用SOAP或REST,但它们也属于构建您自己的客户机类别。

    关于标签:您可以将它们作为WebDAV属性传递。将它们作为CustomXML部分(或者仅仅是文档属性——其优点是它们在wordui中是可见的)放到docx中也是值得的,因此文档即使移动了或其他什么都有它们。