Feature |
Support provided in C++, C#, Java & VB 6 |
Complex type groups |
|
Sequence |
A Complex Type containing the sub item <sequence> Fully Supported - validates order of sub elements |
0-1 |
The sequence is optional within the containing Complex Type |
1 |
The sequence is mandatory within the containing Complex Type Fully Supported |
0-n |
There may be 0 or multiple instance of the sequence within the containing Complex Type Fully Supported - creates a strongly typed collection |
Choice |
A Complex Type containing the sub item <choice> Fully Supported |
0-1 |
The choice is optional within the containing Complex Type Fully Supported |
1 |
The choice is mandatory within the containing Complex Type Fully Supported |
0-n |
There may be 0 or multiple instance of the choice within the containing Complex Type Fully Supported - creates a strongly typed collection |
All |
A Complex Type containing the sub item <all> Fully Supported |
0-1 |
The sequence is optional within the containing Complex Type Fully Supported |
1 |
The sequence is mandatory within the containing Complex Type Fully Supported |
0-n |
There may be 0 or multiple instance of the sequence within the containing Complex Type Fully Supported - creates a strongly typed collection |
Multiple Models |
A choice that contains a sequence Fully Supported - Ensures that the rules for each contained type are obeyed. See all/choice/sequences |
any |
Enables any element from the specified namespace(s) to appear in the containing <sequence> or <choice> element Fully Supported - Allows runtime elements to be added, including namespace, and namespace validation |
unions |
An attribute type can contain either a number or the sting 'xxx' Represented as a string, no validation performed |
anyAttribute |
Enables any attribute from the specified namespace(s) to appear in the containing <complexType> element or in the containing <attributeGroup> element Fully Supported - Allows runtime elements to be added, including namespace, and namespace validation |
default values |
Gives the default value to a attribute or element Fully Supported |
Pad chars (&<>" etc) |
Escape invalid XML characters Fully Supported |
Strongly Typed Output |
Provide classes that are strongly typed, i.e. all the schema attributes and elements are represented by appropriate primitive types for the given language Fully Supported - all types are strongly typed (extended types may be treated as objects in VB6 due to its lack of proper inheritance). |
Enumerations | |
Enumerated Attributes |
A limited list of values is allowed for a given attribute Fully Supported |
Enumerated Elements |
A limited list of values is allowed for a given element Fully Supported |
0-n Enumerated Elements |
A collection of a limited list of values is allowed for a given element Fully Supported - creates a strongly typed collection |
Documentation | |
Documentation Generation |
Is Documentation for the library is generated Fully Supported - creates html & compiled html files (.chm) using MS Help workshop 1.3 |
Schema comments |
The comments from the schema get incorporated into the documentation Coming Soon |
complexContent | |
extension |
An existing Complex Type may be extended, adding new elements & attributes to its existing ones. The extended versions may be used in place of the base type Fully Supported |
restriction |
An existing Complex Type may be restricted to create a new one that has a subset of the properties of the original. The extended versions may be used in place of the base type Partial Support - Generates working code, but it will validate XML documents containing restricted elements, and allow the construction of XML documents with restricted elements in them |
Different base model types |
i.e. a element containing a choice is extended with an element containing a sequence Fully Supported |
Schema | |
Namespace |
The schema contains elements and attributes from a number of different namespace Fully Supported - each element is aware of the namespace it is contained within. This is also true of runtime elements (see All, and anyAttribute) |
Import |
Existing schemas may be imported into the current schema file Fully Supported |
Include |
Existing schemas may be included into the current schema file Fully Supported |
groups |
Groups a set of element declarations so that they can be incorporated as a group into complex type definitions Fully Supported |
Recursive elements |
I.e. an element is defined in terms of itself Fully Supported |
substitutionGroups |
Indicates the name of an element for which this element can be substituted. This element must have the same type or a type derived from the type of the specified element. Fully Supported - these resemble a choice in the generated code |
Invalid names |
Element & Attribute names in the schema that are invalid in the target language Fully Supported - all invalid names are re-mapped, a mapping file is written out, allowing the default mappings to be changed. This includes making duplicate, long names, and reserved words safe |