将zope模式定义序列化到xml和从xml序列化zope模式定义

plone.supermodel的Python项目详细描述


简介

supermodel基于 zope.schema字段。主要用例是:

< Buff行情> <P>1。在基于XML文件的代码中定义架构接口。这是可以做到的 语法如下:

>>> from plone.supermodel import xmlSchema
>>> IMySchema = xmlSchema("myschema.xml")
<P>2。通过XML格式保存和加载接口定义。转换架构 接口为XML,您可以执行以下操作:

>>> from plone.supermodel import serializeSchema
>>> xml_string = serializeSchema(IMySchema)

要从XML文件获取架构,可以使用上面的xml schema()函数, 或者可以使用更强大的spec()函数,它将 给定XML文件中的模式和小部件提示。

有关详细信息,请参见源代码中的schema.txt和interfaces.py, 包括有关如何为窗体提供小部件提示以及如何保持 同一XML文件中有多个架构。

超级模特vs.用户模式

这个包与tres seaver的"userschema"库非常相似,后者 可以在http://agendaless.com/members/tsaver/software/userschema" rel="nofollow">http://agendaless.com/members/tsaver/software/userschema上找到。

实际上,plone.supermodel最初是基于userschema的。然而,作为 包经过了优化和重构,保留的用户模式越来越少, 到了我们需要对后者进行重大重构的地步 继续使用它。

XML导入/导出代码当前基于编写的算法 对于plone.app.portlets和plone.app.contentrules的genericsetup处理程序。

这两个软件包之间的一些主要区别是:

< Buff行情>
  • userschema可以从html表单和csv创建模式接口 电子表格。plone.supermodel不支持这种配置。

  • 用userschema创建的模式通常在启动时加载 zcml指令。supermodel支持"伪基类"语法, 如上所示,在python代码中定义接口。除此之外,它的api 更倾向于运行时配置。

  • supermodel支持将模式序列化为xml。

  • supermodel xml语法更直接地与zope.schema绑定 字段,并从由 每个zope.schema字段。这有两个优点:

    < Buff行情>
    • zope.schema的api文档可以轻松应用于<;schema/>; 块
    • 新字段和模糊属性更易于支持
  • supermodel的xml模式旨在支持更多的模式元数据, 包括小部件提示。

在将来,可以使userschema重用 plone.supermodel或反之亦然,具有更多重构功能。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java迷宫解算器在死胡同中陷入循环   java JPA在一个查询中检索2个列表   java正则表达式匹配文档中两个字符串之间的所有字符   java更改JTable标题高度   安卓忽略调试库中的java代码   java使用ScheduledExecutorService延迟Spring WebClient调用不会等待响应   如何使用Java将包含JSON对象的字符串转换为实际的JSON   sqlite数据库连接:java。Lang.ClassNotFoundException:org。sqlite。JDBC   在MySQL中存储表情符号的java获取错误字符串值错误   当发送包含超过一定大小字节数据的对象时,安卓 Java StreamCorruptedException   Java游戏旋转图像和轴   java IntelliJ Idea:无法解析实体类的列   Android中带有editText的java AlertDialog   map only和mapreduce应用程序之间的java差异   如何在Kotlin编写的接口中使用默认方法的Java8特性   java CPU时间百分比算法问题   java如何在WEBINF文件夹中使用带有JAR的taglibs JSTL/core   有没有办法在Java中找到JPanel和/或JFrame的长度和宽度?