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