我需要对 XML 模式进行非规范化,以便为将创建符合该模式的文档的人员生成文档。用户不了解 XSD,并且很可能永远不会学习。我见过的工具能够为其他 XSD 开发人员生成文档,但我的用户对如何构建架构的细节不感兴趣,他们只想知道他们可以做什么和必须做什么来创建有效的文档。
\n\n因此,我正在寻找一种方法来解析 XML 模式中的所有包含和引用,并生成一个非规范化版本,我可以使用该版本(反过来)生成用户文档。
\n\n我\xc2\xb4已经开始使用 XSLT 来完成其中的一些工作,但是经过验证的工具会有所帮助。我也尝试过 XSD4J,但它显然删除了我生成有用内容所需的所有注释。
\n\n更新:
\n\n我想要的是解析所有引用并使所有定义内联。例如,以下架构:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">\n <xs:element name="AAAA" type="myComplexType"/>\n <xs:complexType name="myComplexType">\n <xs:all>\n <xs:element name="BBBB">\n <xs:complexType>\n <xs:attribute name="cccc" type="mySimpleType"/>\n </xs:complexType>\n </xs:element>\n </xs:all>\n </xs:complexType>\n <xs:simpleType name="mySimpleType">\n <xs:restriction base="xs:string">\n <xs:minLength value="1"/>\n </xs:restriction>\n </xs:simpleType>\n</xs:schema>\nRun Code Online (Sandbox Code Playgroud)\n\n应非规范化为:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">\n <xs:element name="AAAA">\n <xs:complexType>\n <xs:all>\n <xs:element name="BBBB">\n <xs:complexType>\n <xs:attribute name="cccc">\n <xs:simpleType>\n <xs:restriction base="xs:string">\n <xs:minLength value="1"/>\n </xs:restriction>\n </xs:simpleType>\n </xs:attribute>\n </xs:complexType>\n </xs:element>\n </xs:all>\n </xs:complexType>\n </xs:element>\n</xs:schema>\nRun Code Online (Sandbox Code Playgroud)\n\n元素和属性定义的注释也需要在转换后继续存在。
\n