Мы в процессе обновления приложения, которое в настоящее время используется для импорта контента из сторонней системы в Tridion. Текущей CMS является Tridion 2009, а новым экземпляром будет Tridion 2011 SP1 HR1.Проблема с комплексом Tridion 'Complex Schema' с 'xlink:' и атрибутом 'ref'
Задача, с которой мы столкнулись, состоит в том, что мы не можем получить комплексную схему для проверки. Я включил рабочий пример (работающий в 2009 году), и это подтверждается в SDL Tridion 2009. Однако, когда я пытаюсь создать эту же схему через CME в Tridion 2011, я получаю сообщение об ошибке, когда я выбираю «Validate», указывающий что
значение атрибута «ссылка» является «XLink: HREF» Недействительного = является недопустимого значения для атрибута «ссылки».
Я потратил некоторое время на чтение (это сложная схема с руками и руками со значительным содержанием, уже прижатым к ней!) И поверьте? что мы не можем просто вставлять имя и тип (или определять этот «глобальный» параметр локально как-то - и если бы мы могли - не было бы это «не очень хорошо» «практика». Я считаю, что это может быть устранено путем обновления . XML-(от xml problem with <attribute ref="...">), но это то, что мы не можем изменить
Любые комментарии/указатели бы прекрасно Благодаря
<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>
UPDATE: чтобы иметь возможность продолжить, мы сделали изменение схемы 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"/>
Это на самом деле происходит от cm_lnk.xsd от версии 2011 года. Реф должен фактически быть ссылкой на атрибут xlink: href, так что это может быть все еще некорректно - кто-нибудь знает о любых подводных камнях с этим изменением, которое мы можем проверить/наблюдать?
UPDATE (из CS) CS заявили, что они будут смотреть на это с R & D и, как представляется, согласились, что это была действительная схема в 2009 году, и теперь это не действует в 2011 году билет был закрыт, но это будет интересно следить за этим и посмотреть, будет ли это разрешено в 2013 году или принято как другой подход?
Является ли схема для cm_lnk.xsd правильной? –
Привет, Доминик, я пробовал без schemaLocation = "cm_lnk.xsd" в экземпляре Tridion 2009, и он все еще проверен - это сторона Tridion CME при проверке схемы. –
В Tridion 2011 пространство имен xlink импортируется через импорт экземпляра. '' Если вы добавите это вместо импорта cm_lnk.xsd, это поможет? –