現在、サードパーティのシステムからTridionにコンテンツをインポートするために使用されているアプリケーションをアップグレード中です。現在のCMSはTridion2009であり、新しいインスタンスはTridion 2011SP1HR1になります。
私たちが遭遇した課題は、検証する複雑なスキーマを取得できないことです。以下に実際の例(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属性への参照である必要があるため、これはまだ正しくない可能性があります-この変更でテスト/監視する可能性のある落とし穴を知っている人はいますか?
UPDATE(CSから) CSは、これをR&Dで調査し、2009年には有効なスキーマであり、2011年には無効であることに同意したようです。チケットはクローズされましたが、これをフォローアップして確認するのは興味深いことです。これが2013年に解決された場合、または別のアプローチとして受け入れられた場合はどうなりますか?