"Не удалось получить информацию о типе из XML-схемы компонента" при загрузке страницы в SiteEdit 2009
Я включил встроенное редактирование в SitEdit 2009 SP2, используя ответ, приведенный здесь
Как включить редактирование встроенных полей в SiteEdit при использовании TBS XSLT?
но я продолжаю получать эту ошибку при загрузке получившейся страницы в SiteEdit:
Sys.FormatException: не удалось получить информацию о типе из XML-схемы компонента. Поле: cf_tcm:20-33457-64_content_header XPath: [1]
Мой фрагмент XSLT TBB:
<xsl:if test="//*[local-name()='content_header'] != ''">
<h1>
<div>
<tcdl:ComponentField name="content_header" index="0">
<xsl:value-of select="//*[local-name()='content_header']">
</tcdl:ComponentField>
</div>
</h1>
</xsl:if>
Вывод в опубликованный файл:
<h1>
<div>
<span>
<!-- Start SiteEdit Component Field: {"ID" : "cf_tcm:20-33457-64_content_header", "XPath" : "[1]", "IsMultiValued" : false} -->
<tcdl:ComponentField name="content_header" index="0" SiteEditProcessed="true">
Test
</tcdl:ComponentField>
</span>
</div>
</h1>
Что не так с моим кодом?
1 ответ
Это сообщение об ошибке означает, что XPath в вашем <!-- Start SiteEdit Component Field: { ...} -->
Команда не указывает на поле в текущем Компоненте. Учитывая, что ваш XPath отображается как [1]
Это звучит довольно точно.
Вам нужно будет найти причину вывода пустого XPath. В вашем XSLT вы помечаете поле <tcdl:ComponentField>
обертка. Эта обертка позже обрабатывается TBB "Включить встроенное редактирование" для генерации соответствующего <!-- Start SiteEdit Component Field ... -->
команда. Поскольку внешнему интерфейсу SiteEdit требуется XPath для поля и tcdl:ComponentField
содержит только имя поля, TBB должен будет искать XPath на основе имени поля.
TBB "Включить встроенное редактирование" из SiteEdit 2009 ищет текущий компонент при обработке tcdl:ComponentField
глядя на текущий разрешенный элемент (engine.PublishingContext.ResolvedItem.Item.Id
). Затем он ищет поле в этом Компоненте, чтобы определить его XPath.
Если вы посмотрите на пакет в построителе шаблонов, что такое Компонент внизу списка пакетов? Содержит ли этот компонент content_header
поле?