2013-04-19 4 views
4

Ok. C# 클래스를 생성하려고합니다. http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd (기본적으로 xbrl 스키마).SubstitutionGroup/anytype을 사용하여 Xsd.exe에서 사용할 수없는 코드가 생성되는 경우

튜플 및 항목에 문제가 있습니다.

<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> 

그리고 순서에 대해 생성 된 속성은 다음과 같습니다 :

다음은 XSD의 모습입니다

[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; 
    } 
} 

는 기본적으로 튜플 및 항목 추상 기본 클래스가 생성되지 않습니다. 그래서 다른 스키마에 substitutiongroup = "tuple"이있을 때도 넣을 수 없습니다. (글쎄, 할 수는 있지만 직렬화하지는 않습니다).

답변