Plone/ZCML: Где / где должен находиться zcml-дополнительный?

Я пытаюсь настроить через zcml движок и сессию для подключения к базе данных с использованием z3c.saconfig. Я использую Plone 4.3.2.

Я следовал вместе с книгой по Plone 4, которая называется Professional Plone Develop book, и в [instance] в buildout.cfg говорится, что он размещает zcml-Additional, и он устанавливает движок и сессию.

Вот как выглядит фрагмент экземпляра buildout.cfg:

[instance]
<= instance_base
recipe = plone.recipe.zope2instance
http-address = 8080
zcml-additional = 
    <configure xmlns="http://namespaces.zope.org/zope"
               xmlns="http://namespaces.zope.org/db"
               >

        <include package="z3c.saconfig" file="meta.zcml" />
        <db:engine name="testA" url="mysql://uName:uPass@localhost/GPCL_Asset_Tracker"/>
        <db:session engine="testA" />
    </configure>

Кроме того, у меня есть пакет с именем gpcl.calibration и в файле setup.py, который я добавил под install_requires 'MySQL-Python' и 'z3c.saconfig', которые работают и не вызывают проблем в сборке.

К сожалению, я получаю эту ошибку:

    ZopeSAXParseException: File "/home/pjdowney/Plone/GPCLAssetTrackerD/parts/instance/etc/package-includes/999-additional-overrides.zcml", line 2.0,  duplicate attribute

Zcml-дополнительный определяется в другом месте, кроме buildout.cfg? В книге я заметил, что он имеет [экземпляр] http-адрес и пользователя, которые, кажется, вместо этого были перемещены под [buildout].

1 ответ

Решение

Это опечатка: вы не можете иметь два атрибута с двумя именами xmlns на ваше configure элемент. Идя мимо <db:engine что, вероятно, следует прочитать

<configure xmlns="http://namespaces.zope.org/zope"
           xmlns:db="http://namespaces.zope.org/db"
           >
Другие вопросы по тегам