Как импортировать XML-файлы в Plone, чтобы каждое значение поля сохранялось в соответствующем поле AT? - PullRequest
2 голосов
/ 06 сентября 2011

Я пытаюсь импортировать файлы XML в Plone. Методы, описанные в учебном пособии «http://plone.org/documentation/kb/xml-in-plone-with-marshall/tutorial-all-pages"», прекрасно работают для просмотра Plone-страницы в XML, однако при импорте XML-файла всегда все содержимое файла вставляется в виде символов в кодировке HTML в тег .

У меня есть страница с именем "my-test-page.atxmlpage" с таким содержанием:

<?xml version="1.0" ?>
<metadata xmlns="http://plone.org/ns/archetypes/" xmlns:cmf="http://cmf.zope.org/namespaces/default/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="adobe:ns:meta">
<dc:title>
    My Test Page
</dc:title>
<dc:creator>
    admin
</dc:creator>
<dc:language>
    en
</dc:language>
<xmp:CreateDate>
    2011-09-06T19:00:27Z
</xmp:CreateDate>
<xmp:ModifyDate>
    2011-09-06T19:01:01Z
</xmp:ModifyDate>
<field name="id">
    my-test-page
</field>
<field name="text">
    Hello world!
</field>

<cmf:type>
    Document
</cmf:type>
<cmf:workflow_history>
    <cmf:workflow id="simple_publication_workflow">
        <cmf:history>
            <cmf:var id="action" type="None" value="None"/>
            <cmf:var id="actor" type="str" value="admin"/>
            <cmf:var id="comments" type="str" value=""/>
            <cmf:var id="review_state" type="str" value="private"/>
            <cmf:var id="time" type="date" value="2011-09-06 15:00:27"/>
        </cmf:history>
    </cmf:workflow>
</cmf:workflow_history>
<cmf:security>
    <cmf:local_role role="Owner" user_id="admin"/>
</cmf:security>
</metadata>

Когда я пытаюсь импортировать этот файл в Plone (через FTP через 8021 или через WEBDAV через исходный порт 9880), страница загружается со всем содержимым (начиная с тега) в поле. Правильнее всего было бы, чтобы Plone загрузил каждое значение поля в свое правильное поле AT. Поле должно содержать только текст «Hello world!».

Как научить Plone правильно импортировать файл XML?

ПРИМЕЧАНИЯ:

My / Plone / marshaller_register / содержит две ограничения предиката: ATXMLMarshaller с этим условием: python: mode == 'marshall' и ATXMLMarshaller с этим условием: python: mode = 'demarshall' и content_type == 'text / xml .

My / Plone / content_type_registry / содержит предикат Page для расширения .atxmlpage (согласно инструкциям в вышеупомянутом руководстве).

Plone версия 3.3.4. Маршалл версия 1.2.1. Python версия 2.4.4.

...