gpt4 book ai didi

c# - 在 .NET 中从 xsd 创建 xml 文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:49 27 4
gpt4 key购买 nike

我想知道解决这个问题的最佳方法:我想从 xml 模式创建一个空白模板 xml。将创建所有必需的元素和属性,并且它们的值将全部为空字符串。

下一步是如何确定某个节点可能具有哪些子 xml 节点。例如。我会选择一个节点,它的一个子节点具有 minOccurs="0", maxOccurs="unbounded"。我将能够确定关于那个 child 的一切,它的属性、它的名字、它的值类型等等。

为了提供更多关于这种情况的背景信息,我正在开发一种工具,允许用户在更加用户友好的设置中编辑 xml 文件。例如,他们可以向“account db”节点添加一个新帐户,他们会看到唯一可用的节点是一个帐户节点。接下来,当他们尝试将子节点添加到帐户节点时,选择将是名称节点(必需)、密码节点(必需)、设置节点(可选)等。如何以编程方式确定帐户节点可用于哪些子节点它以及那些 child 的属性和设置是什么?

这是在带有 .NET 2.0 的 C# 2.0 中。

总而言之,我使用哪些类来读取模式并解析它以获得对创建 xml 有用的信息?我天真地希望,因为 xsd 本身就是 xml,所以会有某种我可以遍历的 DOM 模型。

我希望这仅限于我的程序,因此不使用 OxygenXml、VS、xsd.exe 等外部工具。

最佳答案

听起来您想要做的是在大多数优秀的 XML 编辑器中复制 XML 智能感知背后的功能。即读取 xml 模式并计算出接下来可以出现哪些元素和属性。

我们在前段时间从事的项目中做了非常相似的事情。生产大部分时间都可用的东西需要大量工作,而生产始终可用的东西则需要大量工作!

基本上您需要加载 XSD(.net 中的 XmlSchema 对象允许您执行此操作)。但是它们公开的 SOM 对象模型非常原始,因此您需要做很多工作来解释它。如果您忽略替换组、复杂类型扩展、变色龙模式和命名空间等概念,您应该能够相当轻松地浏览 SOM。

接下来您需要确定您在 XML 文档中与您的架构相关的位置。一旦您知道自己在 SOM 中,您就可以开始计算可用的选项。

要正确执行此操作,需要 1,000 行代码和 4-12 人周的工作。您也许可以在几周内获得一些基本的东西?

关于c# - 在 .NET 中从 xsd 创建 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/808378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com