一些用户一直在非常重复地面对文档损坏问题。
我们有一个使用Webdav在服务器上存储Word文档的应用程序。在服务器上访问和编辑这些文档的用户可能在办公室2007和办公室2010上。大多数文档是共享的,可以由office 2007和Office 2010用户进行编辑。
用户数正在遇到文档损坏问题,并出现以下错误。 ==> “文件xxx无法打开,因为”内容存在问题“ 细节: 没有更详细的信息。位置部分:/word/document.xml行:1列0
格式化此文档的document.xml文件后,我发现错误指向line => < wp:docPr id =“1026”/>
有问题的XML节点位于下面提供的XML节点中。所有损坏的文档都具有相同的行为。它们都指向相同的XML标记。如果我拿出完整的节点,文档就可以正常打开。
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0">
<wp:extent cx="4572638" cy="3429479" />
<wp:effectExtent l="0" t="0" r="0" b="0" />
<wp:docPr id="1026" />
<wp:cNvGraphicFramePr>
<a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1" />
</wp:cNvGraphicFramePr>
<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="0" />
<pic:cNvPicPr>
<a:picLocks noChangeAspect="1" />
</pic:cNvPicPr>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId4" />
<a:stretch>
<a:fillRect />
</a:stretch>
</pic:blipFill>
<pic:spPr>
<a:xfrm>
<a:off x="0" y="0" />
<a:ext cx="4572638" cy="3429479" />
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst />
</a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData>
</a:graphic>
</wp:inline>
</w:drawing>
将文档保存在我的本地计算机上并使用打开和修复选项打开它后,有问题的标记看起来像这样=&gt; &lt; wp:docPr id =“1026”name =“Picture 1026”/&gt;完整的节点如下所示。
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0">
<wp:extent cx="4572638" cy="3429479"/>
<wp:effectExtent l="0" t="0" r="0" b="0"/>
<wp:docPr id="1026" name="Picture 1026"/>
<wp:cNvGraphicFramePr>
<a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/>
</wp:cNvGraphicFramePr>
<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="0" name=""/>
<pic:cNvPicPr>
<a:picLocks noChangeAspect="1"/>
</pic:cNvPicPr>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId8"/>
<a:stretch>
<a:fillRect/>
</a:stretch>
</pic:blipFill>
<pic:spPr>
<a:xfrm>
<a:off x="0" y="0"/>
<a:ext cx="4572638" cy="3429479"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData>
</a:graphic>
</wp:inline>
</w:drawing>
请帮我解决这个问题。
答案 0 :(得分:0)
简短的回答是“name”是docPr和cNvPr元素的必需属性:
<xsd:complexType name="CT_PictureNonVisual">
<xsd:sequence>
<xsd:element name="cNvPr" type="a:CT_NonVisualDrawingProps"/>
...
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CT_Inline">
<xsd:sequence>
...
<xsd:element name="docPr" type="a:CT_NonVisualDrawingProps"/>
...
</xsd:sequence>
...
</xsd:complexType>
<xsd:complexType name="CT_NonVisualDrawingProps">
...
<xsd:attribute name="id" type="ST_DrawingElementId" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required"/>
...
</xsd:complexType>
我不得不猜测在该过程中该属性被取消或删除的位置。但是没有它,document.xml部分不是模式有效的,这将解释所需的修复步骤。