能否使用JSON Schema而非XML对PowerDesigner进行逆向工程?选择JSON作为DBMS后生成空白项目的解决方案咨询
首先得明确:PowerDesigner原生对JSON Schema的逆向工程支持确实不算完善,直接选择JSON作为DBMS进行逆向操作时出现空白项目是比较常见的情况——毕竟它最初是为关系型数据库设计的工具,JSON相关的支持更多是后期扩展的功能。
下面给你几个可行的解决思路:
启用JSON Schema扩展再尝试逆向
如果你使用的是PowerDesigner 16.5及以上版本,先创建一个新的Physical Data Model,然后在模型的属性面板里找到「Extensions」选项,启用「JSON Schema Support」扩展。之后不要通过选DBMS的方式逆向,而是通过顶部菜单File > Reverse Engineer > JSON Schema来导入你的JSON Schema文件,这个路径才是专门针对JSON Schema的逆向入口。转成XSD间接逆向
如果你的PowerDesigner版本没有JSON Schema扩展,或者上面的方法无效,可以先把JSON Schema转换成XSD(XML Schema Definition)——PowerDesigner对XSD的逆向支持成熟很多。你可以用Python的jsonschema2xsd库或者一些在线转换工具完成这个转换,拿到XSD后再用PowerDesigner逆向生成模型,之后再调整模型结构适配JSON的特性。脚本辅助手动补全模型
要是上面的方法都走不通,只能先接受空白项目,然后用脚本批量导入结构:- 编写VBScript或者JScript脚本(PowerDesigner支持内置脚本),读取你的JSON Schema文件;
- 解析Schema里的实体、属性、嵌套关系,自动在PowerDesigner里创建对应的模型元素;
- 要是不想写脚本,也可以手动对照JSON Schema的结构,逐个创建模型对象,虽然麻烦但能保证结构准确。
检查JSON Schema的兼容性
最后别忘了排查你的JSON Schema本身:确保它符合PowerDesigner支持的Schema规范(比如Draft 4或Draft 6,老版本可能不支持Draft 7及以上),尽量避免使用循环引用、自定义关键字这类复杂特性,这些都可能导致PowerDesigner无法解析,最终生成空白项目。
内容的提问来源于stack exchange,提问作者skipa

