问题:我们的许多设计和体系结构文档都是在Enterprise Architect中创建和维护的- 无论好坏,就是这样.这些文档存储在我们的subversion存储库中 - 这对于创建和更新它们的人来说非常好 - 因为我们拥有EA的许可证 - 但许多开发人员(内部和外部)都在我们的代码库上工作并需要制作使用图表,但都没有EA许可证.
糟糕的解决方案:我们可以手动将EA文档导出为可移植格式,然后检查它们,但是有时候便携式格式版本与EA文档已经过时,因为它依赖于人类采取的步骤手动转换.
更好的解决方案:我们一直在寻找一种自动化转换的方法.这可以作为提交后挂钩或作为我们的持续集成系统的一部分运行.我们缺少的部分是允许我们自动化转换的部分.有任何想法吗?
我有一些jaxb对象(从xsd生成的代码实例化jaxb)我需要克隆.Jaxb类似乎没有为这样做提供简单的界面.我无法手动编辑类并且无法扩展它 - 因此我需要创建一个帮助器/实用程序方法来执行此操作.什么是最好的方法?
当子元素作为父元素位于不同的命名空间时,我试图在ElementTree或lxml中获得命名空间的紧凑表示.这是基本的例子:
from lxml import etree
country = etree.Element("country")
name = etree.SubElement(country, "{urn:test}name")
name.text = "Canada"
population = etree.SubElement(country, "{urn:test}population")
population.text = "34M"
etree.register_namespace('tst', 'urn:test')
print( etree.tostring(country, pretty_print=True) )
Run Code Online (Sandbox Code Playgroud)
我也试过这种方法:
ns = {"test" : "urn:test"}
country = etree.Element("country", nsmap=ns)
name = etree.SubElement(country, "{test}name")
name.text = "Canada"
population = etree.SubElement(country, "{test}population")
population.text = "34M"
print( etree.tostring(country, pretty_print=True) )
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我得到这样的东西:
<country>
<ns0:name xmlns:ns0="urn:test">Canada</ns0:name>
<ns1:population xmlns:ns1="urn:test">34M</ns1:population>
</country>
Run Code Online (Sandbox Code Playgroud)
虽然这是正确的,但我希望它不那么冗长 - 这可能成为大数据集的真正问题(特别是因为我使用比'urn:test'更大的NS).
如果我可以将'country'放在"urn:test"命名空间内,并像这样声明它(在上面的第一个例子中):
country = etree.Element("{test}country")
Run Code Online (Sandbox Code Playgroud)
然后我得到以下输出:
<ns0:country xmlns:ns0="urn:test">
<ns0:name>Canada</ns0:name>
<ns0:population>34M</ns0:population>
</ns0:country>
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是:
<country xmlns:ns0="urn:test">
<ns0:name>Canada</ns0:name> …Run Code Online (Sandbox Code Playgroud) 我有一个Django应用程序,我想部署到桌面.我已经阅读了一点,看到一种方法是使用冻结.我过去在Python应用程序中使用过这种方法取得了不同的成功,但我不相信它是Django应用程序的最佳方法.
我的问题是:您用于部署Django应用程序的成功方法是什么?有事实上的标准方法吗?你有没有死路一条?我需要一个跨平台的解决方案.
我的任务是重构一些使用xmlbeans的组件,现在使用jaxb.一切都很顺利,直到我到达前一位作者调用其中一个XmlObjects的copy()函数的地方.由于xmlbeans中的所有对象都扩展了XmlObject,因此我们可以免费获得神奇的深层复制功能.
Jaxb似乎没有为我们提供这个.制作Jaxb对象的深层副本的正确和简单方法是什么?
我所看到的问题,在这里问xsd-> ActionScript对象,但这些似乎需要xsd-> Java的>动作,是所有源代码.我们的要求有点不同:
有人知道一个动作脚本库或工具可以帮助我们在运行时完成这个任务吗?如果像这样的东西已经存在会很好 - 但是我们肯定会找到一个库,它给了我们一个编程接口来从xsd架构中提取信息.此外,我们将采取其他方法的建议来实现相同目的.