persistent class %ZHSLIB.PackageManager.Developer.Annotation.Tag.API.Extensible extends %ZHSLIB.PackageManager.Developer.Annotation.Tag.AnchorTag, %ZHSLIB.PackageManager.Developer.Annotation.Tag.SupportsAvailability

SQL Table Name: %ZHSLIB_PackageManager_Developer_Annotation_Tag_API.Extensible


parameter AddIfOmitted = 1;
Inherited description: flag to indicate whether a COS entity that allows this tag should always have XML for that tag, even if it's omitted from the annotations. Such extra XML representation will not use a default instance of the tag, but one constructed by calling ConstructMissingMandatoryTag(). This allows us to have different behavior between a) omitted things and b) things included without modifiers, e.g. "Extensible" by itself should have "universal" availability, while omission means "forbidden".
parameter XMLNAME = API_Extensible;
Inherited description: note that we tried using a COSEXPRESSION to generate the XMLNAME from the class name, using the obvious simple rule: $replace($piece($classname(),".",6,*),".","_") . While this works when evaluated with $parameter(), the XML writer can't use it because it relies on run-time expression execution and the XML output is done via generated code. Using a curly-braces "evaluate at compile time" expression also does not work, even if we use %classname instead of $classname(); maybe the XML.Adaptor code generation doesn't support the {} syntax regardless. See prodlog 148118 So we have to provide the obvious XMLNAME value explicitly in all the tag subclasses.

Inherited Members

Inherited Properties (Including Private)

Inherited Methods (Including Private)


Gray indicates storage defined by superclasses.

Storage Model: Storage (%ZHSLIB.PackageManager.Developer.Annotation.Tag.AnchorTag)


Storage Model: Storage (%ZHSLIB.PackageManager.Developer.Annotation.Tag.API.Extensible)