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"
,