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

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

Я следил за книгой по Plone 4 под названием Professional Plone Develop book, и в разделе [экземпляр] в 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.dication, и в файле 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-additional где-то еще, кроме buildout.cfg? В книге я заметил, что под [экземпляром] есть http-адрес и пользователь, которые, кажется, вместо этого были перемещены под [сборку].


person Patrick Downey    schedule 17.11.2014    source источник
comment
Вторая строка в вашем zcml-additional неверна. Я думаю, это должно быть db="http://namespaces.zope.org/db". В настоящее время вы определяете xmlns дважды. Об этом свидетельствует ошибка.   -  person Mathias    schedule 17.11.2014


Ответы (1)


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

<configure xmlns="http://namespaces.zope.org/zope"
           xmlns:db="http://namespaces.zope.org/db"
           >
person Ulrich Schwarz    schedule 17.11.2014
comment
Спасибо за ваш быстрый ответ и исправление моего тега конфигурации. Я просто забыл добавить :db туда, где я получал пространство имен для db. - person Patrick Downey; 17.11.2014