Did some further testing. Adding sequence wasn't necessary. <xs:element name="table"> parenting to <xs:choice maxOccurs="unbounded" minOccurs="0"> instead of <xs:complexType> is the right solution. This corresponds also with your ADO.Net sample.
Patch attached. Ludo > > Attached the patch with the changes against git. > > Ludo > > > I'm getting an "http://www.w3.org/2001/XMLSchema:element not > > taken into account in this context" (freely translated from > > French) error. Fixed this by adding <xs:sequence> between > > <xs:complexType> and <xs:choice maxOccurs="unbounded" > minOccurs="0"/> > > > > One other comment on indices: > > > > Line 244: > > if Index.Name = '' then > > begin > > TDOMElement(FANode).SetAttribute('index-name', > > UTF8Decode('idx' + Index.Fields + > > IntToStr(Index.ID))); > > //Avoids risk for name collision by adding > > collection id. > > End > > > > Index.Fields contains ; as a field delimiter. AFAIAK ; is an > > invalid character in index names. Better do a > > StringReplace(Index.Fields, ';', '_', [rfReplaceAll, rfIgnoreCase]) > > > > Ludo > > > > >
xmlxsd.diff
Description: Binary data
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal