NIST Validator Contents Validation Tools Browse Models Notes on Tools Change Log Clear Session Software Disclaimer MIWG Tools Changelog This page describes changes that affect the behavior of the MIWG tools (Validator, Class Browser, Model Diff). NIST Validator Changes 2017-12-21: Correct a problem preventing compilation of operators in loaded profiles. 2016-09-23: Correct a problem where some OCL Collect shorthand (see OCL spec 7.7) was not compiled correctly. 2016-09-23: Report where things identified by href reference a version of UML other than the one of the model. Report where xmi:type is used in XML elements that also use hrefs. (This is prohibited in XMI 2.4.1 and later.) Report where UML.xmi is used to reference primitive types in XMI 2.4.1 and later. (These should use PrimitiveTypes.xmi.) 2014-04-25: Addressed a problem where oclAsType was causing problems when called inside derived properties. Addressed a problem linking user-loaded profiles and model fragments with models that use them. Split the interface loading profiles, metamodels and model fragments into three separate pages and improved the documentation of the processes involved. Clarified the documentation of 'unresolved URI reference' to encourage users to load the needed models. 2014-02-21: Corrected two problems with XMI href referencing. Implemented command line switches for debugging. 2013-12-29: Implemented Associations as persistent metaobjects. Enabled use of older versions of /usr/bin/file on linux. Fixed a bug where checking for mandatory values was not performed on properties from stereotypes. Rewrote OCL for Package::containingProfile() and Stereotype::containingProfile(). Rewrote OCL for Extension::metaclassEnd() following a recommendation from Nicolas Rouquette. Fixed a bug where the LHS menu wasn't displaying the complete menu item hierarchy. Changed some reporting to use links to class properties rather than plain text. 2013-11-27: Corrected the name of the 20131001 Standard Profile. 2013-11-24: Added UML2.5 as a metamodel for which profiles can be defined. Using the final UML2.5 not the 2012 beta. Preloaded the 20131001 Standard Profile 2013-11-13: Updates for use on servers beyond syseng.nist.gov, which has been decommissioned. Removed QVT-r. Removed or modified some static introductory pages. Pre-loaded all MIWG Test Cases that are part of MIWG Release-14. Fixed a bug where profiles were compiled for UML2.4.1 regardless of the stated metamodel. Removed reporting of 'OCL errors while evaluating derived attributes' and 'OCL errors due to missing derived attribute specifications,' error types which most users don't care about. 2013-05-06: Defined the derivation of UML2.4.1::EnumerationLiteral.classifier. 2013-04-12: Fixed a bug where the wrong URI was used to identify SysML 1.3. Fixed a bug where XMI namespaces were not properly identified. Added reporting on the XMI version used. Removed redundant superclass declarations in the compilation of metamodels. Updated compilation of UPDM 2.0.1. (This may be inconsequential.) Added matching on primitives values in shallow model diffing. 2013-02-27: Fixed a bug where the XMI 2.1 XML namespace was always used in generated canonical XMI. 2013-01-03: Fixed a bug where objects in an OCL package (e.g. Variable) were confused with objects in metamodel packages. 2012-11-10: Added ability to compile profiles based on UML 2.4.1. Fixed a problem where having OCL Collections on properties that should not contain them was causing property propagation to run long. Fixed a problem in canonical XMI generation where the reference to the base_ property of stereotype applications was not updated. Preloaded the not-yet-AB-reviewed 20121004 UPDM. Corrected a bug in HTML rendering where the validation results page was entirely inside a header element. 2012-11-02: Added ability to run CMOF constraints on validation. Corrected a problem with oclAsType(); return invalid when argument type does not conform. Corrected a problem where Extension.owned was not being compiled correctly (in profiles). Updated UML 2.5 to ptc/2012-10-24 version. Corrected URI referencing SoaML. 2012-10-10: Fixed a bug in the propagation of opposites where the opposite is a property that is renamed in its redefinition. 2012-10-03: Fixed a bug in which differences in regression testing of model-diff were not reported. Fixed a bug where some testing inappropriate for stereotypes was being applied. 2012-09-07: Fixed a bug which prevented some stereotypes from being applied and also caused problems in the generation of element references in Canonical XMI of these stereotypes. 2012-07-30: Fixed various bugs that prevented loading and href-linking of models spread over multiple files. Improved the documentation of the multi-file loading capability. Fixed a bug where diff report details called an undefined method. 2012-07-16: Fixed a bug in the reporting of ocl:Sets that contain duplicate elements. 2012-06-25: Fixed a bug in Canonical generation where the code attempted to create names for objects that are defaults (and therefore not serialized). 2012-06-22: Fixed a bug in Canonical generation where the uml::name method was called on elements that did not possess that property. 2012-06-01: Created a version that runs on MS Windows, for distribution. It can be found here. Fixed a bug in Canonical XMI generation where CMOF:Tags were not getting new xmi:ids. Updated UML2.5 preload to current SVN version. 2012-05-16: Updated the UPDM Profile from SVN -- URI/URL changed to URI. Fixed a bug where navigating to URLs to QVT menu items caused an error. 2012-05-03: Fixed a problem where canonical xmi:id's were not managed correctly, affecting canonical XMI transformation from input that was mostly in canonical form. 2012-05-01: Corrected URI to SoaML. Updated UPDM Profile. Save xmi:id of Packages in compiled models. Corrected a bug where some legitimate URLs where perceived as XSS attacks. 2012-04-25: Pre-loaded the UPDM profile. 2012-04-23: Pre-loaded the SoaML profile. 2012-03-18: Fixed bug where class browser list was not appearing. Added separate error reporting for OCL type exceptions. Corrected OCL generation for detection of shorthand collect. Upgraded OCL prepend and append to OCL 2.3. Fixed a problem with ocl <>. (No kidding.) 2012-03-07: Support additional character encodings: jis, shift_jis, Windows-CP936, euc-jp. Pre-loaded SysML 1.3 Store unpredictable xmi-id for href. Removed operations for derived properties in UML 2.4.1 which where stubbed in to return true. Thus, the validator will again generate exceptions when these are called, as it does with other metamodels. This currently appears to be the best approach to handling the missing derivation problem. The problem may go away in UML 2.5. Corrected a problem with translation of the OCL grammar element CollectionLiteralPart where the populating expression was not literal (e.g. OrderedSet{ownedEnd}. Compiled with LW 6.1 2012-02-28: Updated UML 2.5 metamodel. Allow validation of CMOF. (Note that the toplevel package should have xmi:id='_0'.) 2012-02-25: Restored ability to specify href URI for user-loaded profiles. Fixed various bugs in OCL parsing revealed by UML2.5 Implemented OCL closure operation. Fixed bug where the schema loader was concatenating ownedRule bodies (OCL), where it should have been using bodyCondition, precondition and postcondition. Fixed bug in OCL collection literal. Implemented QVT-r handling of opposites Implemented additional methods for OCL asSet() etc. Implemented OCL _'reservedword' syntax Fixed bug in checking for cross-site scripting 2012-01-23: Deployed UML 2.4.1, dropped support for UML 2.2 Started using cmof:Tag to identify UML profiles. Improved usability of the QVT-r implementation. 2011-11-25: Implemented a capability to define properties from multiple ancestors; used on StructuredActivityNode.activity. Ignoring constraint ReadSelfAction::contained(). 2011-11-22: Corrected a problem with insertion of owner in 2011-11-14 umlLiteralSpecification code. Don't run OCL when there is a cylce of ownership. Element::allOwnedElements() will get stuck. 2011-11-18: Corrected a problem with Property::isConsistentWith(). 2011-11-16: Corrected a problem in multi-threading. 2011-11-14: Corrected a problem where ill-formed XML in profile files caused a server error. 2011-10-14: Implemented a profile loading capability. Implemented new reporting for cycles in the uml:OwnedElement property. In files where cycles are found, XMI Canonical diffing is not performed. Report errors where uml:LiteralSpecification is required but a simple literal was used in the XMI. Removed experimental NIEM capability -- The NIEM profile can be loaded manually using the new profile loading capability. 2011-08-10: Experimental NIEM capability. 2011-08-02: Eliminated a bug in how the object match table referenced object owners. Eliminated a bug where derived unions could contain duplicate elements. Eliminated a bug where the object browser could give an error when there was no reference test case file associated with the submitted file. 2011-08-01: Eliminated a bug where the test case being used was not cleared between runs. Force new session object with each validation run. Don't start server until Valid TCs are loaded. 2011-07-28: Eliminated a bug in the XMI diff algorithm. Implemented a table identifying difference between the user's file and the corresponding MIWG test case (where applicable). See 'Table of corresponding objects' under the heading 'Canonical XMI' on the main report page. Corrected text in reporting of differences; provide links appear where appropriate. 2011-07-26: Eliminated a bug where errors significant enough to halt assessment of the user's file did not provide information regarding what went wrong. Implemented in the object browser a link from the user's object to the corresponding object in valid.xmi. This is available only when testing concerns a MIWG test case and the object requested matched an object in valid.xmi. 2011-07-24: Implemented the revised version of Canonical XMI. 2011-06-23: Implemented a hybrid model/xml diff capability. Note that: Since it uses numerical scoring of object resemblance, it will require some tuning. Report bugs. It is now possible to examine objects from the valid.xmi file as well as the file you have uploaded. When a valid.xmi object is shown, to avoid confusion, its title background is light green (very obvious). Updated the page describing the unresolved URI error condition and defined page that lists actual URLs used here. 2011-05-09: Implemented Maged Elaasar's OCL for Property::multiplicity_of_composite() Corrected several bugs where bad URLs from bots where filling log files. 2011-05-09: Eliminated permissive behavior on incorrect URIs for UML 2.3, SysML and the Standard Profile L2. Corrected a bug where canonical XMI generation stereotype application base_ objects were referenced by element content rather than xmi:idref. Added checking for duplicate application of a stereotype. Corrected bugs with OCL >= and <=. Eliminated OCL for Property::multiplicity_of_composite() 2011-04-20: Removed support for UML 2.1 UML2.3 only: ActivityNode::node now subsets Element::ownedElement. UML2.3 only: ValueSpecificationAction::value now subsets Element::ownedElement. UML2.3 only: Stereotype::icon now subsets Element::ownedElement. UML2.3 only: Ignored constraint LinkEndData.qualifers(). UML2.3 only: Made multiplicity of JoinNode::joinSpec (0 1). UML2.3 only: Removed faulty derivation of Stereotype.profile and made the property multiplicity (0 1). 2012-04-02: Fixed a bug where a program exception would occur if a metamodel defined the lower bound of a collection to be an unlimited natural. 2011-04-01: Fixed more bugs in the syntax of xmi:ids of Canonical XMI. In test case diff warnings, added a link referencing the implicated model element. 2011-03-16: Fixed a bug in the syntax of xmi:ids of Canonical XMI. Implemented new error reporting for comparision with Canonical XMI. Made Pin abstract in all supported UMLs. Removed TestContext from the SysML Profile. 2011-02-08: Carried over 2010-11-01 changes of UML 2.2 into UML 2.3. Fixed a problem with reporting of a stereotype-related error. 2010-12-13: Corrected a problem where unresoved xmi:idrefs caused a program error in Canonical XMI transformation. 2010-12-08: Corrected a problem in Canonical XMI transformation where the elementization of object references did not encode these as xmi:idrefs. 2010-11-22: Corrected a problem in Canonical XMI generation where LiteralSpecifications were not provided unique XMI:ids. Corrected a problem in Canonical generation where objects with qualified names that were not unique to their scope were not provided unique XMI:ids. Developed a regression test to report where results differed between the testing of an uploaded file and testing of the canonical file generated from the uploaded file. Currently, results are identical. Corrected several problems in the reading of Canonical XMI. Corrected a problem in Canonical generation where xmi:id values outside of the Model XML Element were not being translated to the canonical values. 2010-11-01: Modified UML2.2 metamodel pursuant to today's MIWG telecon: ActivityEdge.guard given default value True. ActivityEdge.weight given default value 1. ObjectNode.upperBound given default value *. ActivityEventAction.trigger made to subset Element.ownedElement. 2010-10-30: Added reporting for many types of XML error. Fixed a bug where propagating an opposite property would cause a hard error when the object being updated was not of a type possessing the property. 2010-10-12: Fixed a bug where Canonical XMI ordering was not enforced. Removed XMI version from the xmi:XMI element, a requirement of the Canonical spec. Fixed a bug where objects were not created for xml elements mistakenly identified as xmi:id references. Fixed a bug in Canonical XMI where the strings that were not references to xmi:ids were mistakenly replaced with the renamed xmi:id string whenever the string happened to match an xmi:id. 2010-09-30: Fixed a bug in Canonical XMI where the xmi:type attribute was kept when an href was present. Fixed several bugs in reading Canonical XMI. 2010-09-28: Implemented a check for serializing the opposite of a property declared composite. Corrected a bug where the XMI shown to explain errors was canonical XMI, not the uploaded original. Colorized some error reporting of user's XMI. Fixed a bug in Canonical XMI where multi-valued XML attributes where not transformed correctly. Fixed a bug in Canonical XMI where the XMI:xmi XML element was not serialized. Fixed a bug in Canonical XMI where XML namespace tags had wrong URIs. Fixed a bug in Canonical XMI where .qualifiedName was used when that name is a null string. Made the Canonical XMI code thread-safe. 2010-09-20: Various corrections to the (still rough) Canonical XMI implementation. 2010-09-19: Implemented direct XML transformation for Canonical XMI -- some bugs remain, but it is good enough for discussion at tomorrow's face-to-face. Implemented regression testing against vendor our-export.xmi on trunk. 2010-09-10: Implemented comparison reporting on the (new) Canonical XMI implementation. Implemented a check for serialization of default values. Implemented a check for serialization of derived values. 2010-09-03: Fixed several bugs in experimental Canonical XMI generation. Improved profile support. 2010-08-05: Added experimental capability to generate Canonical XMI. A known problem exists involving the reference to embedded packages in hrefs. Generate a warning report when a stereotype application occurs inside the XMI element uml:Model. Corrected the OCL for InformationFlow::sources_and_targets_kind(). 2010-06-23: Added UML 2.3 support. Made a few improvements related to processing speed. 2010-06-19: Updated SysML profile to version 1.2. Corrected a problem where false positives were generated on type checking (typically very basic types, NamedElement, etc.). The problem occured because the version of UML used in testing was not the one specified in the user's file. Disabled OCL constraint ObjectNode.not_unique. It is not clear what was intended. Allowed profile objects inside of uml:Model object. Corrected (I think!) OCL of AssociationClass.cannot_be_defined. Made Transition.trigger owned by the Transition. Various changes to better support profiles and hrefs. 2010-01-04: Carried over into UML2.2 2009-07-27 fix for RedefinableElement.isRedefinitionContextValid Carried over into UML2.2 2009-05-12 fix for NamedElement.qualifiedName.1 Carried over into UML2.2 2009-05-12 fix for Constraint.value_specification_boolean Carried over into UML2.2 the UML 2.1.1 fix (unclear of date) for Property.redefined_property_inherited 2009-07-27: Added OCL for Image.mustBeOwned. Corrected OCL for Extension::non_owned_end(). When a property is redefined, collect the subsetted properties from the property from which the redefinition is made. Disabled constraints for RedefinableElement::isRedefinitionContextValid(). Enable processing of stand-alone Profiles. 2009-05-12: Corrected OCL for RedefinableElement::isRedefinitionContextValid() Corrected OCL for NamedElement::qualifiedName.1() Ignoring faulty OCL for Constraint::value_specification_boolean() 2009-03-22: Corrected a problem reported by Ralph Hains where validation details were not being shown. Allow reference to http://schema.omg.org/spec/UML/2.1.2/uml.xml in XMI. Corrected OCL errors in Stereotype.generalize, Extension.non_owned_end, Pseudostate.outgoing_from_initial and ExecutionSpecification.same_lifeline, and corrected a problem with packagin interning (found on 'context'). Removed 'members only' capbilities; these are handled by MIWG. Against my principles, I allowed properties that are declared derived but also have a default value(!) to use that default value when the derivation is not provided. There are two of these: ExtensionEnd.lower, Message.messageKind. I am not sure whether this is a bug in UML, or whether I should have been able to infer it from metamodel, but: Extension.ownedEnd redefines Association.ownedEnd and Association.ownedEnd has opposite Property.owningAssociation. I made Extension.ownedEnd have opposite ExtensionEnd.owningAssociation, and defined the type of Extension.ownedEnd to be an ExtensionEnd. Implemented a prototype object diff capability. Corrected a bug in OCL::UnlimitedNatural arithmetic relations. Added run-time diagnostic capabilities. Added 'instance n of m' in title of instance error reports. 2008-08-18: Corrected a bug in OCL of derived attribute Classifier.inheritedMember. Execution was getting stuck in non-progressing recursion among hasVisiblityOf and inheritableMember (calling each other with no change in arguments). Corrected a bug where OCL validation was occurring on every reference to an object rather than just every object. Corrected a bug where operation pre/post condition code was confused with its body. Switched to using compiled OCL operations and derivations. 2008-08-16: Corrected a bug where many opposites were not being recognized. The bug would have caused spurious 'Missing mandatory value' reports in some files. Regression testing suggests, however, that this does not occur as often as I had initially thought. Corrected a bug where complete OCL operations that were evaluated to a string constant (e.g. NamedElement.separator()) were returning nil, not the constant. Corrected a bug where 'result' was considered an OCL reserved word, causing some parsing errors. 2008-08-01:Added Jonathan Burket's Object Inventory capability. 2008-06-18: Allow stream type Windows-1252 in XMI, made synonymous with ISO 8859-1. Allow http://schema.omg.org/spec/UML/2.1(.1)?/uml.(xml|xmi) as a reference to the entire UML profile. Fixed bug in reporting error 'Cannot infer class of object.' 2008-04-04: Fixed a problem where Profile objects were not themselves being dereferenced (content was being dereferenced correctly, however). Created a UML Standard Profile (by hand). It currently only contains the stereotype 'Trace,' used by SysML. 2008-03-08:Fixed a problem where stereotypes that could extend two or more metaclasses resulted in an extended metaclass that inherited from all of them. 2008-02-18: Updated code to use the SysML Profile 20070901 found at http://www.omg.org/technology/documents/formal/sysml.htm Fixed a problem where errors printing several UML Literal types caused problems in the reporting of example XMI. Fixed a problem where (typically stereotyped) objects defined outside of XML scope of Model were not being collected for reference. Fixed a problem where '_0' was not recognized as 'the profile itself' in references such as 'http://schema.omg.org/spec/UML/2.1.1/StandardProfileL2.xmi#_0' The current workaround is to create an object of type uml:Profile for each such reference. Whether this will be sufficient remains to be seen. Created report details for warning 'No proxy for stereotyping' (N.B. This warning still needs to be described better, the explantion is not accurate.) Created report details for warning 'Referent not found.' 2008-01-09: Corrected bugs introduced 2008-01-02 in viewing error report XMI. 2008-01-02: Added reporting for two new types of errors arising from faulty OCL: errors calculating derived attributes and errors due to missing derivations. Typical validation results will report many of these, but they should not be much concern to the Miwg participants. They are tyically due to bugs in the UML and SysML specs. Their presence makes analysis of the OCL constraints involved impossible. We aren't providing detailed reporting on these because they probably aren't interesting to Miwg participants. 2007-06-29: OCL correction: Classifier.inheritedMember (derivation) Was: self.inherit(self.parents()->collect(p | p.inheritableMembers(self))) Now: self.inherit(self.parents()->select (p | p.inheritableMembers(self))) Bug reported against UML 2.1.1. 2007-05-13: The modification of 2007-03-21 appears to be ill-advised; subsetted properties should be copied downward regardless of whether the target is a derived union. (More specifically, nothing in the Infrastructure spec contradicts this). There still may be some loose ends here though. For example, Class.ownedAttribute is ordered, and not a derived union, but subsetted by ownedPort. Where in the ordered set are the subsetted properties positioned? 2007-05-12: Corrected a problem where knowledge of derived union sources was not copied to stereotyped (programmatically created) metaclasses. 2007-05-12: Changed UML metamodel EncapsulatedClass.ownedPort to non-derived. (No derivation is provided in the metamodel). Report to UML RTF. 2007-05-12: Added a link in the 'Summary of Model Contents' section directly to the model. 2007-05-06: Corrected upper-bound multiplicity (generation and declaration) in the SysML Profile. 2007-04-27: Created a members-only area for the miwg. 2007-04-26: Corrected a problem where 'Property not found' errors were not reported. 2007-04-07: Corrected 23 errors in the OCL of UML around the use of MultiplicityElement. 2007-04-06: Upgraded to UML 2.1.1. Fixed a problem with ocl:implies. (It was evaluating its second argument regardless of value of its first argument.) 2007-03-27: Pretty print (indent) XMI showing error instance. 2007-03-25: Corrected a problem where sources of derived unions were not being collected if those sources were derived. 2007-03-21: Don't push values downward to 'subsetted-by' properties unless that 'subsetted-by' property is a derived union. 2007-03-16: Improved processing time by ...um, a factor of 100. Moved error reports for unresolved URI earlier in the reporting sequence. 2007-03-14: Provided a solution to the Validator's limitation in referencing objects in external models/files through XMI href. However, the real problem here is that, in most instances, there should be normative reference files (e.g. UML StandardLibrary). To demonstrate a solution (and make some headway with the UPDM Profile) I used Infrastructure.uml and Superstructure.uml from Eclipse and the Eclipse-specific indexing into those files. 2007-03-13: Modified behavior when 'Cannot infer class of object (XMI rule 2g)' is apparent so that it defaults to the choose the base class for the property. It still warns, though, as it should. 2007-01-27: Removed duplicate OCL violations from reporting. 2006-12-10: Added a link from Object Browser pages to the Class Browser page of the type of object shown. 2006-12-10: Use anchored text on OCL constraint names in Validator report (OCL constraint violation reporting). It links to the Class Browser position where the OCL constraint is displayed. 2006-12-10: Corrected the implementation of oclType(). BTW oclType() is apparently an OCL Library function (used in MMs such as L3) but not defined in OCL Version 2! 2006-12-09: When the spec does not provide a function to compute a derived property, it is so noted in the 'Missing mandatory value' error report. There are currently 20 such properties. They are: Action.context, Activity.structuredNode, Behavior.context, Class.extension, Class.superClass, ConnectorEnd.definingEnd, ExtensionEnd.lower, Message.messageKind, Message.signature, OpaqueExpression.result, Package.nestedPackage, Package.ownedStereotype, Package.ownedType, Parameter.default, Port.provided, Port.required, Property.default, ProtocolTransition.referred, RedefinableTemplateSignature.inheritedParameter, StructuredClassifier.part. 2006-12-09: Added links to the error explanations from the 'summary of warnings' section of the validation report page 2006-12-09: Corrected problem where default values (from MM definitions) were not being set 2006-11-18: Implemented derived properties. In the past, certain 'Missing Mandatory Value Violation' errors were in fact due to the Validator not being able to compute the property from the OCL. Unfortunately, the UML spec does not provide OCL for all of the properties that are declared derived. A future fix will report when a Multiplicity Violation was the spurious result of the absence of the OCL definition that would provide the value. Another fix will define that OCL ;^) 2006-11-13: Corrected a problem where the type given to stereotyped objects was in some cases wrong. 2006-11-10: Corrected a problem finding SysML objects in XMI. 2006-11-09: Validation is now performed on all objects, not just those with an xmi:id. 2006-11-09: Reporting now includes statistics on how many of the 39 SysML stereotypes were applied. (called 'SysML classes instantiated') 2006-06-06: Began development. UML+Profile Class Browser Changes 2008-08-17 Class Browser now tracks OCL modifications and editor notes. See the section of this page, Current Status of OCL 2008-03-08: Specialized Class Browser pages that concerned stereotypes so that they didn't contain heading for content inappropriate for stereotypes. Fixed a problem where asking for property detail in the Object Browser resulted in a server error. Added a list of 'example objects' to the Class Browser pages. The examples are presented in cases where you have uploaded an XMI file containing objects of the class being presented. 2008-03-08 Fixed problem where 'red triangle' link not showing in IE. 2007-04-28: Fixed problem where 'red triangle' link not showing in IE. 2007-04-11: Fixed new problem where URLs to SysML stereotypes were wrong. Added Expresso page. 2007-04-06: Upgraded to UML 2.1.1. 2007-03-25: Provide the same slot details in the object browser as is presented in the class browser. 2007-03-23: List the sources of a derived union in the details of the property. 2006-12-10: Show default values in property details. 2006-12-09: When the spec does not provide a function to compute a derived property, it is so noted in the property details. (See the Validator changelog entry of this date for a list of these properties.) 2006-11-10: Fixed parentage of UML Standard Profile Stereotype uml:Trace. 2006-11-06: Class description pages that describe classes from the SysML Profile now have titles that read 'SysML Stereotype foo' etc. 2006-11-06: The Class Browser now appends a '*' after the name of every class listed on the Class Browser main page that names a SysML object (all others are part of UML). 2006-06-06: Begin development. Current Status of the Validator's OCL The Validator uses the UML's metamodel OCL constraints and operations wherever possible, of course. However, there are bugs in that OCL. In order to make the OCL evaluation performed by the Validator more meaningful, and also to suggest improvements to the OCL to the UML standard writers, this tool uses modified OCL in some places. In other places, where it isn't clear what the solution should be, I haven't attempted to write a solution. Finally, there is OCL in UML and SysML I probably could write, but haven't yet. Rewritten OCL The following are constraints and operations that were rewritten to fix a bug. The page at the link describes the changes made. AddStructuralFeatureValueAction::unlimited_natural_and_multiplicity() AddVariableValueAction::single_input_pin() Association::specialized_end_number() Association::association_ends() AssociationClass::cannot_be_defined() Class::inherit() Classifier::parents() Classifier::maySpecializeType() Classifier::isTemplate() Classifier::inheritedMember.1() Classifier::inheritedMemberAux() Classifier::allParents() ClearAssociationAction::multiplicity() ClearStructuralFeatureAction::multiplicity_of_result() Component::realizedInterfaces() Constraint::value_specification_boolean() CreateLinkObjectAction::multiplicity() CreateObjectAction::multiplicity() DataType::inherit() DeploymentSpecification::deployment_target() DeploymentSpecification::deployed_elements() DestroyObjectAction::multiplicity() DurationConstraint::first_event_multiplicity() DurationObservation::first_event_multiplicity() Extension::non_owned_end() Extension::metaclassEnd() InformationFlow::sources_and_targets_kind() Lifeline::same_classifier() LinkAction::same_pins() LinkAction::same_association() LinkAction::not_static() LinkEndCreationData::single_input_pin() LinkEndData::multiplicity() MultiplicityElement::lower_ge_0() MultiplicityElement::upperBound() MultiplicityElement::is() NamedElement::qualifiedName.1() Namespace::getNamesOfMember() OpaqueExpression::only_return_result_parameters() Package::CMOF_14_3_9() Property::redefined_property_inherited() Property::multiplicity_of_composite() Property::opposite.1() Property::isConsistentWith() Property::isAttribute() ProtocolStateMachine::deep_or_shallow_history() Pseudostate::junction_vertex() Pseudostate::join_vertex() Pseudostate::history_vertices() Pseudostate::fork_vertex() Pseudostate::choice_vertex() QualifierValue::multiplicity_of_qualifier() ReadIsClassifiedObjectAction::multiplicity_of_output() ReadIsClassifiedObjectAction::multiplicity_of_input() ReadLinkAction::compatible_multiplicity() ReadLinkObjectEndAction::multiplicity_of_result() ReadLinkObjectEndAction::multiplicity_of_object() ReadLinkObjectEndAction::ends_of_association() ReadLinkObjectEndAction::association_of_association() ReadLinkObjectEndQualifierAction::multiplicity_of_result() ReadLinkObjectEndQualifierAction::multiplicity_of_qualifier() ReadLinkObjectEndQualifierAction::multiplicity_of_object() ReadLinkObjectEndQualifierAction::ends_of_association() ReadSelfAction::multiplicity() ReadStructuralFeatureAction::multiplicity() ReadVariableAction::compatible_multiplicity() ReclassifyObjectAction::multiplicity() RedefinableTemplateSignature::isConsistentWith() State::destinations_or_sources_of_transitions() StateMachine::connection_points() StringExpression::subexpressions() StructuralFeatureAction::multiplicity() TemplateableElement::parameterableElements() TestIdentityAction::multiplicity() Transition::outgoing_pseudostates() Transition::isConsistentWith() ValueSpecification::isCompatibleWith() Vertex::containingStateMachine() WriteStructuralFeatureAction::multiplicity_of_result() WriteStructuralFeatureAction::multiplicity() WriteVariableAction::multiplicity() 'Ignored' OCL The following are constraints and operations that are 'ignored.' An 'ignored' constraint returns ocl:true always. An 'ignored' operation typically returns Set{}. The page at the link describes the changes made. Actor::associations() Association::specialized_end_types() Association::binary_associations() Classifier::hasVisibilityOf() CombinedFragment::consider_and_ignore() Component::usedInterfaces() ExtensionEnd::lowerBound() FunctionBehavior::types_of_parameters() InformationItem::sources_and_targets() InformationItem::not_instantiable() JoinNode::incoming_object_flow() LinkEndCreationData::create_link_action() LinkEndData::qualifiers() MultiplicityElement::compatibleWith() NamedElement::visibility_needs_ownership() NamedElement::has_qualified_name() NamedElement::allOwningPackages() Namespace::importedMember.1() Namespace::importMembers() Operation::isConsistentWith() Package::elements_public_or_private() Parameter::connector_end() ParameterableElement::isCompatibleWith() Profile::references_same_metamodel() Profile::metaclass_reference_not_specialized() Property::subsetting_context_conforms() Property::navigable_readonly() Property::binding_to_attribute() QualifierValue::qualifier_attribute() ReadExtentAction::multiplicity_of_result() ReadLinkAction::visibility() ReadSelfAction::contained() RedefinableElement::isRedefinitionContextValid() ReplyAction::event_on_reply_to_call_trigger() Stereotype::containingProfile() StructuralFeatureAction::visibility() TemplateSignature::own_elements() Transition::initial_transition() AP233 Validator Changes 2006-04-05: Initial release of the AP233 Validator AP233 Entity Type Browser 2007-04-28: Fixed problem where 'red triangle' link not showing in IE. 2006-04-05: Initial release of the Entity Type Browser Send questions or comments to xmi-interop@omg.org.