<p>I'm working with some schema which defines an abstract complex type, eg.</p>

<pre><code>&lt;xs:complexType name="MyComplexType" abstract="true"&gt;
</code></pre>

<p>This type is then referenced by another complex type in the schema:</p>

<pre><code>&lt;xs:complexType name="AnotherType"&gt;
  &lt;xs:sequence&gt;
    &lt;xs:element name="Data" type="MyComplexType" maxOccurs="unbounded"/&gt;
  &lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</code></pre>

<p>When I run "xsd.exe /d /l:CS MySchema.xsd" I get this error:</p>

<blockquote>
  <p>Error: There was an error processing MySchema.xsd'.
    - Error generating code for DataSet ''.
    - Unable to convert input xml file content to a DataSet. DataSet cannot instantiate an abstract ComplexType for the node Data.
    - DataSet cannot instantiate an abstract ComplexType for the node Data.</p>
</blockquote>

<p>It doesn't seem to be invalid schema.  Has anyone else run into this issue?</p>

<p>Thanks</p>

<p>Nick</p>

I have never run into this problem, but I quickly learned that xsd.exe has a lot of shortcomings.  We started using
CodeXS
a long time ago.  The product is a web service, but the code is available as a command-line tool.
It has its own warts, but the code it generates is much better and it is free. Plus, it is extensible, and adding your own plug-ins for it is actually pretty easy.
Possibly, it won't have the same limitation?