Vereiste tags niet aanwezig bij gebruik van Delphi XML Data Binding Wizard

Ik gebruik de XML Data Binding Wizardin Delphi XE2.
Het schema heeft vereiste tags van dit type:

<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
  <xs:all>
    <xs:element name="Header" type="HeaderType" />
    <xs:element name="Values" type="ValuesType" />
    <xs:element name="Events" type="EventsType" />
  </xs:all>
</xs:complexType>

Het probleem is dat als ik geen elementen toevoeg aan b.v. de Values-groep, zal er geen <Values>-tag zijn en zal het XML-bestand niet valideren tegen de XSD. Dit zou waarschijnlijk geen probleem zijn als de interface een methode zou bieden voor het “toevoegen” van de Values-tag.

Is er een standaard manier om hiermee om te gaan, of gebruik ik de gegenereerde code verkeerd?

Simpel gezegd, is er eenmanier, al dan niet een tijdelijke oplossing, om de code van de Data Binding Wizardte gebruiken om de na XML(wat nodig is om te valideren met behulp van het bovenstaande schema als er geen onderliggende knooppunten zijn), gegeven HeaderType, ValuesTypeen EventsTypezijn van complexType:

<MyReport>
  <Header />
  <Values />
  <Events />
</MyReport> 

(Ik weet dat er andere soortgelijke problemen zijn, zoals de code die wordt gegenereerd door <xs:sequence>die de juiste volgorde niet afdwingt in het uiteindelijke XML-bestand, maar tenminste voor die is er een oplossing door simpelweg de kinderen in de juiste volgorde in te voegen. Ik denk nog steeds dat het leuk zou zijn als Embarcaderoeen complete interface zou bieden, die meer van deze functies in account.)


Antwoord 1, autoriteit 100%

Ik weet het niet zeker, maar misschien ben je op zoek naar: use=”optioneel”

<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
  <xs:all>
    <xs:element name="Header" type="HeaderType" use="optional" />
    <xs:element name="Values" type="ValuesType" use="optional" />
    <xs:element name="Events" type="EventsType" use="optional" />
  </xs:all>
</xs:complexType>

Vertel me of het goed is.

Other episodes