Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Basic-Type-List rule in Shapechange (impacts DoubleList classes in CityGML) #54

Open
cmheazel opened this issue Aug 24, 2021 · 1 comment

Comments

@cmheazel
Copy link
Collaborator

Paul Birkel has written up the TB17 recommendations regarding the CityGML 3.0 CM and its associated draft XML Schema encoding. they are located in the "documents" folder here.

Please let Paul know what you make of these recommendations and, of course, any questions you may have. His e-mail is [email protected].

@cmheazel
Copy link
Collaborator Author

The OGC TB17 Model Driven Standards task is developing and demonstrating an automated process flow from UML-based model specifications to standards documents and platform-specific model encodings; the CityGML 3.0 CM document is one use-case being prototyped and the CityGML 3.0 XML Schema-based PSM is one of several target encodings included in that work.

After reviewing the 3.0 CM and the ShapeChange-derived XSDs developed by Tatjana Kutzner, including the source code modifications made by Katjana to a non-current ShapeChange baseline, we arrived at the following recommendations which we have made the basis for our ongoing TB17 activities.

As part of prototyping and testing these recommendations the current ShapeChange software baseline (v2.10) has been extended with one new XML Schema-related rule: rule-xsd-cls-basictype-list This rule is independent of the CityGML 3.0 CM, addressing the more general topic of the modeling of lists of basic types in Application Schemas for an XML Schema PSM. This new rule will be included in the v2.11.0 release of ShapeChange and is available for immediate use in the developmental branch v2.10.1-SNAPSHOT.

The semantics of this new rule are that a basic type that has a single property with maximum multiplicity greater than 1 will be encoded as a list-based XML Schema simple type. The list item type is the XSD type of the UML property value type. If the minimum multiplicity of the UML property is 0 and the maximum multiplicity is unbounded (‘*’), then the length of the resulting list is not restricted. Otherwise, length restrictions are defined according to the multiplicity of the property.

The benefits of this rule are that a more natural approach to modeling lists in UML can be adopted, one that leverages the standard mechanisms for specifying UML properties (e.g., multiplicity) and thus avoids the uses of OCL constraints in the CM simply to add restrictions on the allowed list length as well as avoids the employment of mechanisms such as Schematron for validating XML Instance documents based on such OCL-specified constraints in CMs.

The revised CM no longer requires the inclusion of “accessory” «BasicType» DoubleBetween0and1List and DoubleList generalization classes; the revised five subclasses are easier to read and understand. The design pattern is simple and clear should developers of ADEs desire to create new list-of-basic-type classes of their own.

The generated XSDs using the added rule and the ShapeChange developmental branch v2.10.1-SNAPSHOT are otherwise identical to those currently prepared by Tatjana. In the future CityGML ADE developers can use the (now maintained) ShapeChange capability to generate their community-specific XSD encodings consistent with the CityGML 3.0 CM.

@cmheazel cmheazel changed the title Input from Testbed 17 New Basic-Type-List rule in Shapechange (impacts DoubleList classes in CityGML) Oct 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant