我们正在升级当前用于将内容从 3rd 方系统导入 Tridion 的应用程序。当前的 CMS 是 Tridion 2009,新实例是 Tridion 2011 SP1 HR1。
我们遇到的挑战是我们无法验证复杂的模式。我在下面包含了一个工作示例(即在 2009 年工作),这在 SDL Tridion 2009 中得到了验证。但是,当我尝试通过 Tridion 2011 中的 CME 创建相同的模式时,当我选择“验证”指示时出现错误那
'ref' 属性的值无效 = 'xlink:href' 是 'ref' 属性的无效值。
我花了一些时间阅读(这是一个流传下来的复杂模式,已经有相当多的内容被压在它上面!)你相信吗?我们不能只保留名称和类型(或以某种方式在本地定义这个“全局”参数 - 如果我们可以的话 - 这不是“不太好”的做法吗?我相信这可以通过更新 XML 来解决(来自<attribute ref="..."> 的 xml 问题)但这是我们无法修改的。
任何评论/指针都会很棒!谢谢
<xs:schema targetNamespace="http://www.ccc.com/tridion/pelements" elementFormDefault="qualified" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tcmapi="http://www.tridion.com/ContentManager/5.0/TCMAPI" xmlns="http://www.ccc.com/tridion/pelements" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="cm_lnk.xsd"/>
<!--maps to DITA element: xref -->
<xs:element name="link" type="reference"/>
<xs:complexType name="reference">
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1" type="xs:string"/>
<xs:choice>
<xs:element name="internal">
<xs:complexType>
<xs:attribute ref="xlink:href" use="required"/>
<xs:attribute ref="xlink:title" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="external">
<xs:complexType>
<xs:attribute name="href" use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="text" minOccurs="0" maxOccurs="1" type="xs:string"/>
</xs:sequence>
<xs:attribute name="type" type="referenceType" use="required"/>
</xs:complexType>
<!-- ******************** Enumerations ************************** -->
<xs:simpleType name="referenceType">
<xs:restriction base="xs:string">
<xs:enumeration value="normal"/>
<xs:enumeration value="binary"/>
<xs:enumeration value="embedded"/>
<xs:enumeration value="reusable"/>
<xs:enumeration value="component"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
更新: 为了能够继续,我们对 xsd 模式进行了更改:
<xs:attribute ref="xlink:href" use="required"/>
<xs:attribute ref="xlink:title" use="optional"/>
至
<xs:attribute name="href" type="xs:anyURI" use="required"/>
<xs:attribute name="title" type="xs:string" use="optional"/>
这实际上来自2011 版本的cm_lnk.xsd 。ref 实际上应该是对 xlink:href 属性的引用,所以这可能仍然是不正确的 - 任何人都知道我们可能测试/关注的此更改的任何陷阱吗?
更新(来自 CS) CS 已经表示他们将通过研发来调查这个问题,并且似乎已经同意它在 2009 年是一个有效的模式,现在它在 2011 年无效。票已经关闭,但跟进这件事会很有趣,看看如果这是在 2013 年解决还是被接受为不同的方法?