Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取xml元素的用户界面';c语言中的s数据#_C#_Xml - Fatal编程技术网

C# 获取xml元素的用户界面';c语言中的s数据#

C# 获取xml元素的用户界面';c语言中的s数据#,c#,xml,C#,Xml,我正在尝试开发一个网站,提供用户界面来生成XML文件。用户界面将要求提供各种XML元素中所需的数据。生成XML应遵循DTD规范 这就是我所做的 我将DTD转换为XSD 我使用xsd.exe工具创建了C#类 现在我的问题是如何在网页上生成动态输入框,从我创建的C#类中获取所需的元素数据 我需要一些方法来了解必需和可选元素及其数据类型和属性,以及我创建的C#类中的所有内容 我希望您能理解我的要求,谢谢您的关注。请记住,xsd中的大多数必需/可选语义在使用xsd.exe生成的类中丢失。基本上有2个(+

我正在尝试开发一个网站,提供用户界面来生成
XML
文件。用户界面将要求提供各种
XML
元素中所需的数据。生成
XML
应遵循
DTD
规范

这就是我所做的

  • 我将
    DTD
    转换为
    XSD
  • 我使用xsd.exe工具创建了
    C#
  • 现在我的问题是如何在网页上生成动态输入框,从我创建的C#类中获取所需的元素数据

    我需要一些方法来了解必需和可选元素及其数据类型和属性,以及我创建的C#类中的所有内容


    我希望您能理解我的要求,谢谢您的关注。

    请记住,xsd中的大多数必需/可选语义在使用xsd.exe生成的类中丢失。基本上有2个(+1个稍后编辑)选项:

  • 在生成的类型上使用反射来呈现每个属性的UI元素。您必须手动管理/定义数据绑定
  • 删除xsd.exe类,并通过遍历xsd本身生成UI元素。通过这种方式,您可以获得更多关于可选/可空元素、基数等的信息。从UI输入中手动构造生成的xml(使用XDocument)
  • 混合方法:为结构反射生成的类(更容易遍历逻辑,不需要处理外部包含等)。转到xsd获取更多信息(您需要找出xsd中的何处,才能找到映射到当前属性的所需定义)

  • 无论您选择哪种方式,这都不是一项微不足道的任务,您将需要大量的工作才能实现。如果我们进入XSD选择元素等领域,您很快就会发现没有一个简单的UI可以覆盖所有可能的场景

    您能给我们展示一下生成的C#类吗?使用您自己的类会更容易解释。这是一个客户端DTD,生成的类太大(222kb),因此无法在此提供,抱歉。非常感谢,如果我选择通过遍历XSD生成输入框,您可以建议我如何从XSD获取必需和选项元素及其数据类型。在C#的内置xml类中是否有可用的方法。Xsd只是一个简单的xml类,因此您需要查找相关属性并读取它们的值。也可以使用XDocument。还要检查XmlSchema类以获得更多类似xsd的语义。据我所知,DTD遵循常规标记,因此使用C#我们无法自行解析DTD。所以解析xsd是唯一的选择,或者我也可以解析DTD,如果你知道一些方法的话?我刚才也提到了解析xsd。不知道DTD(2014年还有人在使用它们吗?:P)好的,我搜索了从XSD获取节点信息,找到了一些解决方案,比如为每个可能的情况创建XML,而不是遍历。这对我来说是不可能的,因为我有超过65个病例。我将进一步搜索并保持此线程的更新。