Complexe typen

De definities van de elementen in een XML-schema kunnen eenvoudig of complex zijn. Voor de kenmerken kunnen eenvoudige definitietypen worden gebruikt. Over het algemeen worden elementen en kenmerken met een eenvoudig definitietype in Designer gebonden aan velden. Elementen met een complex definitietype bevatten andere elementen en kenmerken of kenmerken, en worden doorgaans omgezet in subformulieren.

Alle andere elementen worden gedefinieerd met een complex definitietype. Met complexe typen kunt u de elementinhoud, eenvoudige inhoud, gemengde inhoud en lege inhoud definiëren.

Voor elk element met een complex definitietype kunnen al dan niet kenmerken worden opgegeven.

Een subformulier genereren op basis van de elementinhoud in een gegevensbron

Wanneer een element dat alleen elementinhoud en mogelijk kenmerken bevat naar een formulierontwerp wordt gesleept, wordt er een subformulier gegenereerd.

Dit subformulier bevat objecten voor elk kenmerk in het element, en objecten of subformulieren voor elk onderliggend element.

Eenvoudige inhoud

Er is sprake van eenvoudige inhoud wanneer een element is gedeclareerd voor eenvoudige inhoud (tekstgegevens) en er ook kenmerken voor kunnen worden gedeclareerd. Als er geen kenmerken voor het element zijn opgegeven, wordt het element op dezelfde manier omgezet als een eenvoudig element.

Zijn er wel kenmerken opgegeven, dan wordt het element omgezet in een subformulier dat de naam van het element krijgt. Dit subformulier bevat dan een veld dat aan het element is gebonden en extra velden voor elk kenmerk. De naam van het veld dat aan het element is gebonden, is de naam van het element waaraan de tekenreeks "_data" is toegevoegd. Een voorbeeld hiervan is een element (bijvoorbeeld <phone>) dat een numerieke inhoud heeft en een kenmerk met de naam type:

<phone type="work">5554567</phone>

Hiermee wordt een subformulier gegenereerd met de naam phone dat objecten bevat met de naam type en phone_data. Het object type is gebonden aan $data...phone.type en het veld phone_data is gebonden aan $data...phone.

Gemengde inhoud

Er is sprake van gemengde inhoud wanneer een element is gedeclareerd voor zowel onderliggende elementen als tekstinhoud.

Lege inhoud

Complexe typen met lege inhoud worden verwerkt als elementen met eenvoudige inhoud, waarbij het object dat wordt gemaakt en dat aan het element is gebonden geen inhoud mag bevatten.

Voorval

De kenmerken voor de gebruiksfrequentie in een XML-schema (de parameters minOccurs en maxOccurs) voor de definitie van een element, waarmee subformulieren worden gegenereerd, worden omgezet in de herhalingseigenschappen van het subformulier.

Inhoudsmodellen

Als het inhoudsmodel voor de onderliggende elementen van een element geen opeenvolgende reeks is, wordt bij de omzetting geprobeerd alle opties en groepen na te bootsen met behulp van subformSets.