我想知道解决这个问题的最佳方法:我想从xml架构创建一个空白模板xml.将创建所有必需的元素和属性,并且它们的值将是所有空字符串.
下一步是如何确定某个节点可能具有哪些子xml节点.例如.我会为其中一个子节点选择一个节点有minOccurs ="0",maxOccurs ="unbounded".我将能够确定关于该子项,其属性,名称,值类型等的所有内容.
为了给出更多关于这种情况的背景信息,我正在开发一种工具,允许用户在更友好的用户环境中编辑xml文件.例如,他们可以向"帐户数据库"节点添加新帐户,他们会看到唯一可用的节点是帐户节点.接下来,当他们尝试将子项添加到帐户节点时,选项将是名称节点(必需),密码节点(必需),设置节点(可选)等.如何以编程方式确定帐户节点可用于哪些子节点它以及这些孩子的属性和设置是什么?
这是使用.NET 2.0的C#2.0.
总之,我使用哪些类来读取模式并解析它以获取创建xml的有用信息?在我的天真中,我曾希望,因为xsd本身就是xml,所以我可以遍历某种DOM模型.
我希望这仅限于我的程序,所以不使用外部工具,如OxygenXml,VS,xsd.exe等.
听起来您想要做的是在大多数优秀的 XML 编辑器中复制 XML 智能感知背后的功能。即读取 xml 模式并找出接下来可以出现哪些元素和属性。
我们在前一段时间从事的项目中做了非常类似的事情。生产出在大多数情况下都有效的东西需要大量的工作,而生产出始终有效的东西则需要大量的工作!
基本上,您需要加载 XSD(.net 中的 XmlSchema 对象允许您执行此操作)。但他们公开的 SOM 对象模型非常原始,因此您需要做大量工作来解释它。如果您忽略替换组、complexType 扩展、变色龙模式和命名空间等概念,您应该能够相当轻松地浏览 SOM。
接下来,您需要弄清楚 XML 文档中与您的架构相关的位置。一旦您知道自己处于 SOM 中,您就可以开始计算可用的选项。
要正确完成此操作需要 1,000 行代码和 4-12 人周的工作。您也许可以在几周内掌握一些基本的东西?