gpt4 book ai didi

c# - Xsd.exe 使用 SubstitutionGroup/anytype 生成不可用的代码

转载 作者:数据小太阳 更新时间:2023-10-29 02:13:57 26 4
gpt4 key购买 nike

好的。我正在尝试从以下位置生成 C# 类: http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd(基本上是 xbrl 模式)。

我对元组和项目有疑问。

这是 xsd 的样子:

  <element name="tuple" type="anyType" abstract="true">
<annotation>
<documentation>
Abstract tuple element used as head of tuple substitution group
</documentation>
</annotation>
</element>

<element name="xbrl">
<annotation>
<documentation>
XBRL instance root element.
</documentation>
</annotation>
<complexType>
<sequence>
<element ref="link:schemaRef" minOccurs="1" maxOccurs="unbounded" />
<element ref="link:linkbaseRef" minOccurs="0" maxOccurs="unbounded" />
<element ref="link:roleRef" minOccurs="0" maxOccurs="unbounded" />
<element ref="link:arcroleRef" minOccurs="0" maxOccurs="unbounded" />
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xbrli:item"/>
<element ref="xbrli:tuple"/>
<element ref="xbrli:context"/>
<element ref="xbrli:unit"/>
<element ref="link:footnoteLink"/>
</choice>
</sequence>
<attribute name="id" type="ID" use="optional" />
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace"
processContents="lax" />
</complexType>
</element>

序列的生成属性如下所示:

[System.Xml.Serialization.XmlElementAttribute("context", typeof(context))]
[System.Xml.Serialization.XmlElementAttribute("item", typeof(object))]
[System.Xml.Serialization.XmlElementAttribute("tuple", typeof(object))]
[System.Xml.Serialization.XmlElementAttribute("unit", typeof(unit))]
[System.Xml.Serialization.XmlElementAttribute("footnoteLink", typeof(footnoteLink),
Namespace="http://www.xbrl.org/2003/linkbase")]
public object[] Items {
get {
return this.itemsField;
}
set {
this.itemsField = value;
}
}

基本上不生成tuple和item抽象基类。因此,即使其他模式具有 substitutiongroup="tuple",我也无法将其放入。(我可以,但它不会序列化)。

最佳答案

Xsd.exe 无法处理 W3C XSD 标准中的一些更复杂的结构。因此,您可能不得不寻求第三方数据绑定(bind)产品。

可以在此处找到产品列表(但它们都有点过时了)

我们在 Liquid XML Data Binder 上取得了不错的成绩.

关于c# - Xsd.exe 使用 SubstitutionGroup/anytype 生成不可用的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097675/

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