如何将 XML 文件导入到 Plone 中,以便每个字段值都存储在其对应的 AT 字段中?
我正在尝试将 XML 文件导入到 Plone 中。 “http://plone.org/documentation/kb/xml-in-plone-with-marshall/tutorial-all-pages”教程中描述的方法可以很好地查看 XML 中的 Plone 页面;但是,导入 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 中(通过 8021 上的 FTP 或通过源端口 9880 上的 WEBDAV)时,页面会加载所有内容(从标签开始)进入字段。正确的做法是让 Plone 将每个字段值加载到其正确的 AT 字段中。该字段应仅包含文本“Hello world!”。
如何教 Plone 正确导入 XML 文件?
注意:
我的 /Plone/marshaller_register/ 包含两个谓词约束:一个具有以下条件的 ATXMLMarshaller:python: mode=='marshall' 和一个具有以下条件的 ATXMLMarshaller:python: mode='demarshall' 和 content_type=='text/xml' 。
我的 /Plone/content_type_registry/ 包含 .atxmlpage 扩展名的 Page 谓词(按照上述教程中的说明)。
克隆版本3.3.4。 马歇尔版本 1.2.1。 Python 版本 2.4.4。
I am trying to import XML files into Plone. The methods described in the tutorial on "http://plone.org/documentation/kb/xml-in-plone-with-marshall/tutorial-all-pages" work fine for viewing a Plone Page in XML; however, importing an XML always inserts the entire file contents as HTML-encoded characters into the <field name="text"> tag.
I have a page called "my-test-page.atxmlpage" with this content:
<?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>
When I try to import this file into Plone (either via FTP over 8021 or WEBDAV over the source port 9880), the page loads with all of the content (starting with the tag) into the field. The correct thing to do would be for Plone to load each field value into its correct AT field. The field should only contain the text "Hello world!".
How do I teach Plone to correctly import an XML file?
NOTES:
My /Plone/marshaller_register/ contains two Predicate Constraints: an ATXMLMarshaller with this condition: python: mode=='marshall' and an ATXMLMarshaller with this condition: python: mode='demarshall' and content_type=='text/xml'.
My /Plone/content_type_registry/ contains a Page predicate for the .atxmlpage extension (as per the instructions in the above-mentioned tutorial).
Plone version 3.3.4.
Marshall version 1.2.1.
Python version 2.4.4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论