如何让从Word XML映射窗格插入的Content Control自带标题?
如何让Word XML Mapping窗格插入的内容控件自动带标题?
直接在XML数据节点添加title属性的方式无效,因为Word的XML映射依赖**XML Schema(XSD)**来定义内容控件的显示元数据,而非在数据XML中设置。你需要创建对应的XSD文件,在其中为每个节点指定标题信息,步骤如下:
1. 修正原始XML的语法错误
你的原始XML里存在语法错误:<TestXMLNode xmlns="abc">>多了一个闭合尖括号,修正后内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <TestXMLNode xmlns="abc"> <Subdivision>Subdivision</Subdivision> <Mileage>Mileage</Mileage> <Date>Date</Date> </TestXMLNode>
2. 创建对应的XSD Schema文件
创建一个.xsd格式的文件(比如命名为TestSchema.xsd),在其中通过annotation/appinfo节点定义每个元素的内容控件标题:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:abc="abc" targetNamespace="abc" elementFormDefault="qualified"> <xs:element name="TestXMLNode"> <xs:complexType> <xs:sequence> <xs:element name="Subdivision"> <xs:annotation> <xs:appinfo> <w:title xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">Subdivision</w:title> </xs:appinfo> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:element> <xs:element name="Mileage"> <xs:annotation> <xs:appinfo> <w:title xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">Mileage</w:title> </xs:appinfo> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:element> <xs:element name="Date"> <xs:annotation> <xs:appinfo> <w:title xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">Date</w:title> </xs:appinfo> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
3. 在Word中关联Schema与XML数据
- 打开Word的XML Mapping窗格,点击窗格顶部的XML Schema按钮,加载刚才创建的
TestSchema.xsd文件 - 接着关联修正后的XML数据文件
- 现在右键点击XML Mapping窗格中的节点插入内容控件,控件会自动带上你在XSD中定义的标题
原理说明
Word读取XSD中w:title节点的内容作为内容控件的标题,这是Word XML映射的标准机制——显示类的配置需要在Schema中定义,而非数据XML本身。
内容的提问来源于stack exchange,提问作者Bruno Giusti Coronato
相关产品推荐
相关产品推荐

