Plone: ​​несвязанный префикс в файле configure.zcml

Я разрабатываю новую надстройку для своего сайта Plone, поэтому в результате она показывает ошибку в

configure.zcml : unbound prefix.

Здесь я пишу свой код zcml:

    <configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:five="http://namespaces.zope.org/five"
    xmlns:i18n="http://namespaces.zope.org/i18n"
    i18n_domain="customer.reports">

  <five:registerPackage package="." initialize=".initialize" />

  <include package="plone.resource" file="meta.zcml"/>
  <plone:static
      directory="templates"
      type="reports"
      name="customer"
  />
</configure>

Ошибка несвязанного префикса, упомянутая ниже.

Файл "/Plone/Python-2.7/lib/python2.7/xml/sax/handler.py", строка 38, в fatalError вызывает исключение zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/Plone/zinstance/parts/instance/etc/site.zcml", строка 16.2-16.23 ZopeXMLConfigurationError: File "/Plone/buildout-cache/eggs/Products.CMFPlone-4.3-py2.7.egg/Products/CMFPlone/configure.zcml", строка 98.4-102.10 ZopeSAXParseException: Файл "/Plone/zinstance/src/customer.reports/customer/reports/configure.zcml", строка 13.2, несвязанный префикс

2 ответа

Решение

Эта ошибка указывает на то, что вам не хватает объявления пространства имен в верхней части файла configure.zcml. Попробуйте включить одно из следующих значений в тег настройки:

 xmlns:plone="http://namespaces.plone.org/plone"

Как я добавил выше строку в моем коде, чтобы исправить несвязанную ошибку до этого, я использовал plone для регистрации моего дополнения, но не объявлял правильное пространство имен, т.е. plone в блоке объявления пространства имен файла zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:five="http://namespaces.zope.org/five"
    xmlns:i18n="http://namespaces.zope.org/i18n"
    xmlns:plone="http://namespaces.plone.org/plone"
    i18n_domain="customer.reports">

  <five:registerPackage package="." initialize=".initialize" />

  <!-- -*- extra stuff goes here -*- -->

  <include package="plone.resource" file="meta.zcml"/>
  <plone:static
      directory="templates"
      type="reports"
      name="customer"
  />
</configure>

Ваш код не определяет префикс plone что вы используете в элементе plone:static, Возможно, вам понадобится добавить соответствующее объявление пространства имен где-нибудь, например, в configure элемент: xmlns:plone="http://namespaces.plone.org/plone",

Другие вопросы по тегам