You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2023/04/20 05:55:30 UTC

[causeway] branch master updated: CAUSEWAY-2485: simplifies @Property#maxLength

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new 4ae2d0f7d5 CAUSEWAY-2485: simplifies @Property#maxLength
4ae2d0f7d5 is described below

commit 4ae2d0f7d58be5609025c009b83adcd3ab05f112
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Apr 20 06:55:06 2023 +0100

    CAUSEWAY-2485: simplifies @Property#maxLength
    
    and changes 'element' to 'attribute' throughout
---
 .../ActionChoicesFromPage-description.adoc         |  4 +-
 .../ActionDomainEventPage-description.adoc         |  2 +-
 .../ActionRestrictToPage-description.adoc          |  6 +-
 .../semantics/ActionSemanticsPage-description.adoc |  8 +--
 .../typeOf/ActionTypeOfPage-description.adoc       |  2 +-
 .../ActionLayoutAssociateWithPage-description.adoc |  2 +-
 .../ActionLayoutCssClassFaPage-description.adoc    |  2 +-
 .../hidden/ActionLayoutHidden-description.adoc     |  2 +-
 .../hidden/ActionLayoutHiddenPage-description.adoc |  2 +-
 .../named/ActionLayoutNamedPage-description.adoc   |  2 +-
 .../ActionLayoutPromptStylePage-description.adoc   |  2 +-
 ...ActionLayoutRedirectPolicyPage-description.adoc |  2 +-
 .../ActionLayoutSequencePage-description.adoc      |  8 +--
 .../CollectionDomainEventPage-description.adoc     |  2 +-
 .../domain/properties/Property/PropertyMenu.java   |  5 +-
 .../PropertyFileAcceptPage-description.adoc        |  5 +-
 .../maxLength/MaxLength10MetaAnnotation.java       | 42 -----------
 .../PropertyMaxLengthPage-description.adoc         | 83 ++++------------------
 .../Property/maxLength/PropertyMaxLengthPage.java  | 38 ++--------
 .../maxLength/PropertyMaxLengthPage.layout.xml     |  7 +-
 ....java => PropertyMaxLengthPage_updateName.java} | 22 ++----
 ...ertyMaxLengthPage_updateWithMetaAnnotation.java | 57 ---------------
 ...gthPage_updateWithMetaAnnotationOverridden.java | 61 ----------------
 .../PropertyMustSatisfyPage-description.adoc       | 10 +--
 .../PropertyOptionalityPage-description.adoc       | 10 +--
 .../PropertyProjectingPage-description.adoc        |  4 +-
 .../PropertyRegexPatternPage-description.adoc      | 10 +--
 .../snapshot/PropertySnapshotPage-description.adoc |  2 +-
 .../PropertyLayoutCssClassPage-description.adoc    | 12 ++--
 .../PropertyLayoutHiddenPage-description.adoc      |  2 +-
 ...ropertyLayoutLabelPositionPage-description.adoc | 10 +--
 .../PropertyLayoutMultiLinePage-description.adoc   | 14 ++--
 .../navigable/FileNodeVm-description.adoc          |  6 +-
 .../PropertyLayoutRenderDayPage-description.adoc   | 16 ++---
 .../PropertyLayoutRepaintingPage-description.adoc  | 10 +--
 ...ropertyLayoutTypicalLengthPage-description.adoc | 16 ++---
 .../XmlSnapshotParentVm-description.adoc           |  2 +-
 37 files changed, 119 insertions(+), 371 deletions(-)

diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/choicesFrom/ActionChoicesFromPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/choicesFrom/ActionChoicesFromPage-description.adoc
index d7faa457d1..a3b959c31d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/choicesFrom/ActionChoicesFromPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/choicesFrom/ActionChoicesFromPage-description.adoc
@@ -36,7 +36,7 @@ Reference type
 
 |===
 
-The `choicesFrom` element specifies an action has a multi-value reference type parameter whose choices should be obtained from the specified collection.
+The `choicesFrom` attribute specifies an action has a multi-value reference type parameter whose choices should be obtained from the specified collection.
 
 The end-user can select the choices using checkboxes rendered with the collection.
 
@@ -75,7 +75,7 @@ include::ActionChoicesFromPage_objects.java[tags=class]
 ----
 include::ActionChoicesFromPage_makeLowerCase.java[tags=class]
 ----
-<.> The `choicesFrom` element causes checkboxes to be rendered for each of the objects in the "objects" collection.
+<.> The `choicesFrom` attribute causes checkboxes to be rendered for each of the objects in the "objects" collection.
 +
 It also means that no `choices0Act()` or `autoComplete0Act()` is required.
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventPage-description.adoc
index e65b4501e3..a95625295a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventPage-description.adoc
@@ -9,7 +9,7 @@ Domain service subscribers can influence this interaction, either by:
 * performing arbitrary operations before the action has been invoked (including modifying the argument values to be used)
 * performing arbitrary operations after the action has been invoked (including changing the apparent return value of the action)
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#domainevent[@Action#actionDomainEvent] element specifies the class to be emitted; the class specified must be a subclass of the abstract link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/events/domain/ActionDomainEvent.html[ActionDomainEvent] class.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#domainevent[@Action#actionDomainEvent] attribute specifies the class to be emitted; the class specified must be a subclass of the abstract link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/events/domain/ActionDomainEvent.html[ActionDomainEvent] class.
 
 If no `domainEvent` is specified on the action itself, then the domain event class can be specified at the class level using link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/DomainObject.html#actiondomainevent[@DomainObject#actionDomainEvent].
 And if not specified at the class level, then an instance of `o.a.c.applib.events.domain.ActionDomainEvent.Default` is emitted as the fallback.
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/restrictTo/ActionRestrictToPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/restrictTo/ActionRestrictToPage-description.adoc
index 5ae2b94970..97dba274ef 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/restrictTo/ActionRestrictToPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/restrictTo/ActionRestrictToPage-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#restrictto[@Action#restrictTo] element specifies whether the action should be available only in prototype mode, or at all times.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#restrictto[@Action#restrictTo] attribute specifies whether the action should be available only in prototype mode, or at all times.
 
 Prototype actions are useful in the early stages of development, typically  make it easier to explore the domain objects and their relationships.
 For example (when using a test database with a small amount of data), an action could return all instances of a domain object such as `Customer`.
@@ -16,7 +16,7 @@ export PROTOTYPING=true
 
 == How this demo works
 
-This page is a view model that defines three actions, each of which defines a different `restrictTo` element:
+This page is a view model that defines three actions, each of which defines a different `restrictTo` attribute:
 
 * no annotation
 +
@@ -24,7 +24,7 @@ This page is a view model that defines three actions, each of which defines a di
 ----
 include::ActionRestrictToPage.java[tags=action-no-annotation]
 ----
-<.> does not indicate any `restrictTo` element; will be available in both prototype and production mode
+<.> does not indicate any `restrictTo` attribute; will be available in both prototype and production mode
 
 * explicitly restricted to prototype mode:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/semantics/ActionSemanticsPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/semantics/ActionSemanticsPage-description.adoc
index 13184d6c6f..d1317e0ad8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/semantics/ActionSemanticsPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/semantics/ActionSemanticsPage-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#semantics[@Action#semantics] element specifies whether invoking the action will change the state of the system, and if so, how:
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#semantics[@Action#semantics] attribute specifies whether invoking the action will change the state of the system, and if so, how:
 
 * `SAFE` (sometimes also called "query-only") means no side-effects, that is, no permanent change in state of the system
 
@@ -12,7 +12,7 @@ If the action is not annotated, then non-idempotent is assumed.
 
 The REST API interprets these semantics by mapping to different HTTP verbs: GET, PUT and POST, respectively.
 
-Each of these three basic `semantics` element have a variant:
+Each of these three basic `semantics` attribute have a variant:
 
 * `SAFE_AND_REQUEST_CACHEABLE` means that the framework will automatically cache the result of a first invocation and use the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/services/queryresultscache/QueryResultsCache.html[QueryResultsCache] to return the result subsequently.
 +
@@ -28,13 +28,13 @@ This page provides actions with different semantics.
 
 === No annotations
 
-If the `semantics` element is omitted completely, then the action is assumed to be non-idempotent:
+If the `semantics` attribute is omitted completely, then the action is assumed to be non-idempotent:
 
 [source,java,indent=0]
 ----
 include::ActionSemanticsPage.java[tags=action-no-annotation]
 ----
-<.> does not indicate any `semantic` element, and so non-idempotent is assumed
+<.> does not indicate any `semantic` attribute, and so non-idempotent is assumed
 
 === Annotated as Safe
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/typeOf/ActionTypeOfPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/typeOf/ActionTypeOfPage-description.adoc
index a98f0d84e9..1c09c2e9ff 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/typeOf/ActionTypeOfPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/typeOf/ActionTypeOfPage-description.adoc
@@ -6,7 +6,7 @@ Actions that return lists of objects are usually parameterized, for example, ret
 The framework uses the generic parameter to ensure that the list is rendered appropriately for that element type.
 
 In some rare scenarios though it may be necessary to return only a raw (non-parameterized) `List`.
-In these cases the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#typeof[@Action#typeOf] element can be used to indicate the element type of the returned `List`.
+In these cases the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Action.html#typeof[@Action#typeOf] attribute can be used to indicate the element type of the returned `List`.
 
 == How this demo works
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage-description.adoc
index ba33392c36..7ec9a2e4c1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage-description.adoc
@@ -4,7 +4,7 @@ It's quite common for a domain object action to only change one part of a domain
 For example, an action might be used to change a name, or a pair of actions be used to add or remove elements from a collection.
 In such cases, it generally makes sense for the action's button to be close to the property or collection to which it relates.
 
-One way to specify this is with the `.layout.xml` files, but another option is to use the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#associatewith[@ActionLayout#associateWith] element (along with link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#associatewith[@ActionLayout#sequence] if there are several actions associated with the property/collection).
+One way to specify this is with the `.layout.xml` files, but another option is to use the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#associatewith[@ActionLayout#associateWith] attribute (along with link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#associatewith[@ActionLayout#sequence] if there are several actions associated with the property/collection).
 
 == How this demo works
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage-description.adoc
index f9e4025be9..d472ccd6aa 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage-description.adoc
@@ -2,7 +2,7 @@
 
 To help the end-user navigate a page, it can sometimes be helpful to decorate individual actions within icons so that their purpose is more obvious.
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#cssclassfa[@ActionLayout#cssClassFa] element allows this to be done by specifying the _Font Awesome_ CSS class (or classes) with which to decorate an action.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#cssclassfa[@ActionLayout#cssClassFa] attribute allows this to be done by specifying the _Font Awesome_ CSS class (or classes) with which to decorate an action.
 This is used for whether the action is rendered as a button or as a menu item.
 
 == How this demo works
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHidden-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHidden-description.adoc
index be20343544..f9ce16946e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHidden-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHidden-description.adoc
@@ -15,7 +15,7 @@ From this page, you can inspect the visibility of the actions from the context o
 ----
 include::ActionLayoutHidden_changeName.java[tags=class]
 ----
-<.> no `hidden` element specified, so implicitly visible
+<.> no `hidden` attribute specified, so implicitly visible
 
 * `hidden` on object forms (but not necessarily on collections):
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHiddenPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHiddenPage-description.adoc
index d401f4d882..0ea6e16d82 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHiddenPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/hidden/ActionLayoutHiddenPage-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#hidden[@ActionLayout#hidden] element specifies whether an action should be visible in the UI or not.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#hidden[@ActionLayout#hidden] attribute specifies whether an action should be visible in the UI or not.
 
 == How this demo works
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/named/ActionLayoutNamedPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/named/ActionLayoutNamedPage-description.adoc
index 1ce616501c..bdbf02b3e9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/named/ActionLayoutNamedPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/named/ActionLayoutNamedPage-description.adoc
@@ -3,7 +3,7 @@
 Sometimes the desired name of an action coincides with a reserved Java keyword, for example "default" or "package".
 You will therefore need to use some other method name to implement the action.
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#named[@ActionLayout#named] element allows you to override the name (as used for rendering) from that derived from the action's method name).
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#named[@ActionLayout#named] attribute allows you to override the name (as used for rendering) from that derived from the action's method name).
 
 This can also be used if you want the name to include characters such as brackets `()[]` or quotation marks `' "`.
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/promptStyle/ActionLayoutPromptStylePage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/promptStyle/ActionLayoutPromptStylePage-description.adoc
index a16afaaa19..f353dd21bb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/promptStyle/ActionLayoutPromptStylePage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/promptStyle/ActionLayoutPromptStylePage-description.adoc
@@ -1,7 +1,7 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Most actions take parameters, and so the framework renders a prompt to allow the parameter arguments to be specified.
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#promptstyle[@ActionLayout#promptStyle] element allows the position of this prompt to be specified.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#promptstyle[@ActionLayout#promptStyle] attribute allows the position of this prompt to be specified.
 
 == How this demo works
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/redirectPolicy/ActionLayoutRedirectPolicyPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/redirectPolicy/ActionLayoutRedirectPolicyPage-description.adoc
index d76a3d64c3..fb3d381999 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/redirectPolicy/ActionLayoutRedirectPolicyPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/redirectPolicy/ActionLayoutRedirectPolicyPage-description.adoc
@@ -26,7 +26,7 @@ include::ActionLayoutRedirectPolicyPage.java[tags=class]
 
 [NOTE]
 ====
-In this demo we are somewhat misusing the `@PropertyLayout#repainting` element; normally this is used for components that are expensive to render _and_ which are generally unchanging.
+In this demo we are somewhat misusing the `@PropertyLayout#repainting` attribute; normally this is used for components that are expensive to render _and_ which are generally unchanging.
 The most common example of such a property would be a PDF, rendered using the link:https://causeway.apache.org/vw/2.0.0-RC1/pdfjs/about.html[PDF.js] extension (the link:https://causeway.apache.org/refguide/2.0.0-RC1/extensions/index/pdfjs/applib/annotations/PdfJsViewer.html#section-top[@PdfJsViewer] annotation).
 ====
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/sequence/ActionLayoutSequencePage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/sequence/ActionLayoutSequencePage-description.adoc
index 71067e8e7c..d490dfd813 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/sequence/ActionLayoutSequencePage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/sequence/ActionLayoutSequencePage-description.adoc
@@ -1,9 +1,9 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-It's common to lay out a domain objects' members using the `@ActionLayout#associateWith` element, which places an action's button close to a property or collection.
-If there are more than one such action associated with an object, then the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#sequence[@ActionLayout#sequence] element can additionally be used to specify the order of those action buttons.
+It's common to lay out a domain objects' members using the `@ActionLayout#associateWith` attribute, which places an action's button close to a property or collection.
+If there are more than one such action associated with an object, then the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/ActionLayout.html#sequence[@ActionLayout#sequence] attribute can additionally be used to specify the order of those action buttons.
 
-The value of the `sequence` element is a string, interpreted as a Dewey-decimal value, meaning:
+The value of the `sequence` attribute is a string, interpreted as a Dewey-decimal value, meaning:
 
     "1" < "1.0" < "1.1" < "1.1.1" < "1.1.2" < "1.2" < "1.3" < "2"
 
@@ -160,7 +160,7 @@ The top-level actions are:
 include::ActionLayoutSequencePage_noopSeqY.java[tags=class]
 ----
 +
-Note there is no "associateWith" element
+Note there is no "associateWith" attribute.
 
 * second:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventPage-description.adoc
index e7cd446425..b3a1f3b1e4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventPage-description.adoc
@@ -4,7 +4,7 @@ Usually a domain event is emitted by the framework to emit whenever the user int
 Domain service subscribers can influence these interaction by subscribing to these events, allowing them to hide the collection.
 (Contrasting this with properties or actions, there are no other interactions that can be influenced because collections cannot be modified directly).
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Collection.html#domainevent element specifies the class to be emitted; this must be a subclass of the abstract link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/events/domain/CollectionDomainEvent.html[CollectionDomainEvent] class.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Collection.html#domainevent attribute specifies the class to be emitted; this must be a subclass of the abstract link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/events/domain/CollectionDomainEvent.html[CollectionDomainEvent] class.
 
 If no `domainEvent` is specified on the property itself, then the domain event class can be specified at the class level using link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/DomainObject.html#collectiondomainevent[@DomainObject#collectionDomainEvent]..
 And if not specified at the class level, then an instance of `oa.c..applib.events.domain.CollectionDomainEvent.Default` is emitted as the fallback.
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/PropertyMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/PropertyMenu.java
index b78e9b7887..2697746f14 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/PropertyMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/PropertyMenu.java
@@ -63,6 +63,7 @@ public class PropertyMenu {
     final ValueHolderRepository<String, ? extends PropertyProjectingChildEntity> propertyProjectingChildEntities;
     final Samples<Blob> blobSamples;
     final Samples<Clob> clobSamples;
+    final Samples<String> stringSamples;
 
     @Action(semantics = SemanticsOf.SAFE)
     @ActionLayout(cssClassFa="fa-terminal", describedAs = "Action invocation intentions as XML")
@@ -101,9 +102,7 @@ public class PropertyMenu {
     @ActionLayout(cssClassFa="fa-ruler-horizontal", describedAs = "Length of text fields")
     public PropertyMaxLengthPage maxLength(){
         val vm = new PropertyMaxLengthPage();
-        vm.setPropertyUsingAnnotation("abcdefghij");
-        vm.setPropertyUsingMetaAnnotation("abcdefghij");
-        vm.setPropertyUsingMetaAnnotationButOverridden("abc");
+        vm.setName(stringSamples.single());
         return vm;
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/fileAccept/PropertyFileAcceptPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/fileAccept/PropertyFileAcceptPage-description.adoc
index eece6a29f8..ccbe179487 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/fileAccept/PropertyFileAcceptPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/fileAccept/PropertyFileAcceptPage-description.adoc
@@ -2,9 +2,9 @@
 
 The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Property.html#fileaccept[@Property#fileAccept] attribute is used to indicate a file extension when browsing for a file to upload:
 
-* for properties, the element can be specified using either the `@Property` annotation, or a meta-annotation
+* for properties, the attribute can be specified using the `@Property` annotation
 
-* for parameters, the element can be specified using either the `@Parameter` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@Parameter` annotation
 
 This attribute applies only to ``Blob``s and ``Clob``s.
 
@@ -15,6 +15,7 @@ This page object has two properties, `pdfProperty` and `txtProperty`.
 The first is a `Blob` which is intended to hold only PDF files, while the second is a `Clob` that is intended to hold just `.txt` files.
 
 Both properties can be edited directly, and can also be updated using an action.
+Either way, the file extension that is acceptable is specified.
 
 * for the `pdfProperty`:
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/MaxLength10MetaAnnotation.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/MaxLength10MetaAnnotation.java
deleted file mode 100644
index c7d4fa0847..0000000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/MaxLength10MetaAnnotation.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package demoapp.dom.domain.properties.Property.maxLength;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.apache.causeway.applib.annotation.Parameter;
-import org.apache.causeway.applib.annotation.Property;
-
-//tag::class[]
-@Property(maxLength = 10)                           // <.>
-@Parameter(maxLength = 10)                          // <.>
-@Inherited
-@Target({
-        ElementType.METHOD, ElementType.FIELD,      // <.>
-        ElementType.PARAMETER,                      // <.>
-})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface MaxLength10MetaAnnotation {
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage-description.adoc
index 161bd6a5bd..33a2fef81b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage-description.adoc
@@ -1,13 +1,13 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `maxLength` element specifies the maximum length of the value that can be held by the property.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/Property.html#maxlength[@Property#maxLength] attribute specifies the maximum length of the value that can be held by the property.
 This corresponds to the number of characters that can be entered through the text field:
 
-* for properties, the element can be specified using either the `@Property` annotation, or a meta-annotation
+* for properties, the attribute can be specified using the `@Property` annotation
 
-* for parameters, the element can be specified using either the `@Parameter` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@Parameter` annotation
 
-This semantic applies only to strings.
+This attribute applies only to strings.
 
 [IMPORTANT]
 ====
@@ -16,83 +16,30 @@ For domain entities this semantic should be accompanied with `@Column(maxLength=
 
 [NOTE]
 ====
-`@Property#maxLength()` and `@PropertyLayout#typicalLength()` are not related - the first is an element that prevents the property from holding more than the specified number of characters, the latter is a layout hint relating to the size of the textfield.
+`@Property#maxLength()` and `@PropertyLayout#typicalLength()` are not related - the first is an attribute that prevents the property from holding more than the specified number of characters, the latter is a layout hint relating to the size of the textfield.
 ====
 
+== How this demo works
 
+This page object has a single `name` property.
+This can be edited directly, and can also be updated using an action.
+Either way, a maximum length for the string is enforced.
 
-== Annotated
+To edit the property directly:
 
-The `maxLength` element can be specified explicitly using an annotation:
-
-* for properties, using `@Property#maxLength()`:
-+
 [source,java,indent=0]
+.PropertyMaxLengthPage.java
 ----
-include::PropertyMaxLengthPage.java[tags=annotation]
+include::PropertyMaxLengthPage.java[tags=name]
 ----
 <.> explicitly specifies the maximum length that can be entered for the property
 
-* for parameters, using `@Parameter#maxLength()`:
-+
-[source,java,indent=0]
-----
-include::PropertyMaxLengthPage_updateWithParameterLayout.java[tags=annotation]
-----
-<.> explicitly specifies the maximum length that can be entered for the property
-
-The annotation could also be applied to a mixin, but would have little effect because mixin properties are always read-only.
-
-== Meta-annotated
 
-The `maxLength` element can also be specified using a custom meta-annotation:
+To update using an action:
 
-* the meta-annotation is defined as:
-+
-[source,java]
-----
-include::MaxLength10MetaAnnotation.java[tags=class]
-----
-<.> annotated for a property ...
-<.> \... and for a parameter.
-<.> annotation can be applied to a property (either its getter or the field directly)
-<.> annotation can be applied to a parameter
-
-* and can be applied to a property:
-+
 [source,java,indent=0]
 ----
-include::PropertyMaxLengthPage.java[tags=meta-annotated]
-----
-<.> semantic is inherited from the meta-annotation
-
-* or can be applied to a parameter:
-+
-[source,java,indent=0]
+include::PropertyMaxLengthPage_updateName.java[tags=annotation]
 ----
-include::PropertyMaxLengthPage_updateWithMetaAnnotation.java[tags=meta-annotation]
-----
-<.> semantic is inherited from the meta-annotation
-
-
-=== Meta-annotated Overridden
-
-The meta-annotation can itself be overridden:
-
-* in a property:
-+
-[source,java,indent=0]
-----
-include::PropertyMaxLengthPage.java[tags=meta-annotated-overridden]
-----
-<.> semantic from meta-annotation ...
-<.> \... is overridden by the `@Property` annotation
+<.> explicitly specifies the maximum length that can be entered for the property
 
-* or a parameter:
-+
-[source,java,indent=0]
-----
-include::PropertyMaxLengthPage_updateWithMetaAnnotationOverridden.java[tags=meta-annotation-overridden]
-----
-<.> semantic from meta-annotation ...
-<.> \... is overridden by the `@Parameter` annotation
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.java
index 83625d73b1..325e77edc3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.java
@@ -51,44 +51,14 @@ public class PropertyMaxLengthPage implements HasAsciiDocDescription {
         return "@Property#maxLength";
     }
 
-//tag::annotation[]
+//tag::name[]
     @Property(
-        maxLength = 10                                  // <.>
+        maxLength = 10                  // <.>
     )
-    @PropertyLayout(
-        describedAs =
-            "@Property(maxLength = 10)",
-        fieldSetId = "annotation", sequence = "1")
     @XmlElement(required = true)
     @Getter @Setter
-    private String propertyUsingAnnotation;
-//end::annotation[]
-
-//tag::meta-annotated[]
-    @MaxLength10MetaAnnotation                            // <.>
-    @Property()
-    @PropertyLayout(
-        describedAs = "@MaxLength10MetaAnnotation",
-        fieldSetId = "meta-annotated", sequence = "1")
-    @XmlElement(required = true)
-    @Getter @Setter
-    private String propertyUsingMetaAnnotation;
-//end::meta-annotated[]
-
-//tag::meta-annotated-overridden[]
-    @MaxLength10MetaAnnotation                          // <.>
-    @Property(
-        maxLength = 3                                   // <.>
-    )
-    @PropertyLayout(
-        describedAs =
-            "@MaxLength10MetaAnnotation " +
-            "@PropertyLayout(maxLength = 3)",
-        fieldSetId = "meta-annotated-overridden", sequence = "1")
-    @XmlElement(required = true)
-    @Getter @Setter
-    private String propertyUsingMetaAnnotationButOverridden;
-//end::meta-annotated-overridden[]
+    private String name;
+//end::name[]
 
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.layout.xml
index 790c10145c..81b0535888 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage.layout.xml
@@ -26,10 +26,9 @@
 
 	<bs3:row>
 		<bs3:col span="6">
-			<cpt:fieldSet name="Annotated" id="annotation"/>
-			<cpt:fieldSet name="Contributed" id="contributed"/>
-			<cpt:fieldSet name="Meta-annotated" id="meta-annotated"/>
-			<cpt:fieldSet name="Meta-annotated Overridden" id="meta-annotated-overridden"/>
+			<cpt:fieldSet name="General" id="general">
+                <cpt:property id="name"/>
+            </cpt:fieldSet>
 			<cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
 		</bs3:col>
 		<bs3:col span="6">
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithParameterLayout.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateName.java
similarity index 73%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithParameterLayout.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateName.java
index c75b7ef50c..b8e4089f57 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithParameterLayout.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateName.java
@@ -27,33 +27,25 @@ import org.apache.causeway.applib.annotation.SemanticsOf;
 
 import lombok.RequiredArgsConstructor;
 
-@Action(
-    semantics = SemanticsOf.IDEMPOTENT
-)
-@ActionLayout(
-    associateWith = "propertyUsingAnnotation"
-    , sequence = "1")
+@Action(semantics = SemanticsOf.IDEMPOTENT)
+@ActionLayout(associateWith = "name", sequence = "1")
 @RequiredArgsConstructor
-public class PropertyMaxLengthPage_updateWithParameterLayout {
+public class PropertyMaxLengthPage_updateName {
 
     private final PropertyMaxLengthPage page;
 
 //tag::annotation[]
     @MemberSupport public PropertyMaxLengthPage act(
             @Parameter(
-                maxLength = 10                                 // <.>
+                maxLength = 10          // <.>
             )
-            @ParameterLayout(
-                describedAs =
-                    "@Parameter(maxLength = 10)"
-            )
-            final String parameterUsingAnnotation) {
-        page.setPropertyUsingAnnotation(parameterUsingAnnotation);
+            final String name) {
+        page.setName(name);
         return page;
     }
 //end::annotation[]
     @MemberSupport public String default0Act() {
-        return page.getPropertyUsingAnnotation();
+        return page.getName();
     }
 
 }
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithMetaAnnotation.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithMetaAnnotation.java
deleted file mode 100644
index ab8d4461be..0000000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithMetaAnnotation.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package demoapp.dom.domain.properties.Property.maxLength;
-
-import org.apache.causeway.applib.annotation.Action;
-import org.apache.causeway.applib.annotation.ActionLayout;
-import org.apache.causeway.applib.annotation.MemberSupport;
-import org.apache.causeway.applib.annotation.Parameter;
-import org.apache.causeway.applib.annotation.ParameterLayout;
-import org.apache.causeway.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-@Action(
-    semantics = SemanticsOf.IDEMPOTENT
-)
-@ActionLayout(
-    associateWith = "propertyUsingMetaAnnotation"
-    , sequence = "1")
-@RequiredArgsConstructor
-public class PropertyMaxLengthPage_updateWithMetaAnnotation {
-
-    private final PropertyMaxLengthPage page;
-
-//tag::meta-annotation[]
-    @MemberSupport public PropertyMaxLengthPage act(
-            @MaxLength10MetaAnnotation                            // <.>
-            @Parameter()
-            @ParameterLayout(
-                describedAs = "@MaxLength10MetaAnnotation"
-            )
-            final String parameterUsingMetaAnnotation) {
-        page.setPropertyUsingMetaAnnotation(parameterUsingMetaAnnotation);
-        return page;
-    }
-//end::meta-annotation[]
-    @MemberSupport public String default0Act() {
-        return page.getPropertyUsingMetaAnnotation();
-    }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithMetaAnnotationOverridden.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithMetaAnnotationOverridden.java
deleted file mode 100644
index 2eab3630c3..0000000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/maxLength/PropertyMaxLengthPage_updateWithMetaAnnotationOverridden.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package demoapp.dom.domain.properties.Property.maxLength;
-
-import org.apache.causeway.applib.annotation.Action;
-import org.apache.causeway.applib.annotation.ActionLayout;
-import org.apache.causeway.applib.annotation.MemberSupport;
-import org.apache.causeway.applib.annotation.Parameter;
-import org.apache.causeway.applib.annotation.ParameterLayout;
-import org.apache.causeway.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-@Action(
-    semantics = SemanticsOf.IDEMPOTENT
-)
-@ActionLayout(
-    associateWith = "propertyUsingMetaAnnotationButOverridden"
-    , sequence = "1")
-@RequiredArgsConstructor
-public class PropertyMaxLengthPage_updateWithMetaAnnotationOverridden {
-
-    private final PropertyMaxLengthPage page;
-
-//tag::meta-annotation-overridden[]
-    @MemberSupport public PropertyMaxLengthPage act(
-            @MaxLength10MetaAnnotation                          // <.>
-            @Parameter(
-                maxLength = 3                                   // <.>
-            )
-            @ParameterLayout(
-                describedAs =
-                    "@MaxLength10MetaAnnotation " +
-                    "@PropertyLayout(maxLength = 3)"
-            )
-            final String parameterUsingMetaAnnotationButOverridden) {
-        page.setPropertyUsingMetaAnnotationButOverridden(parameterUsingMetaAnnotationButOverridden);
-        return page;
-    }
-//end::meta-annotation-overridden[]
-    @MemberSupport public String default0Act() {
-        return page.getPropertyUsingMetaAnnotationButOverridden();
-    }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/mustSatisfy/PropertyMustSatisfyPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/mustSatisfy/PropertyMustSatisfyPage-description.adoc
index 5bf5e047ae..cefe9846f4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/mustSatisfy/PropertyMustSatisfyPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/mustSatisfy/PropertyMustSatisfyPage-description.adoc
@@ -1,10 +1,10 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `mustSatisfy` element specifies an arbitrary constraint that the value entered into the property must satisfy:
+The `mustSatisfy` attribute specifies an arbitrary constraint that the value entered into the property must satisfy:
 
-* for properties, the element can be specified using either the `@Property` annotation, or a meta-annotation
+* for properties, the attribute can be specified using the `@Property` annotation
 
-* for parameters, the element can be specified using either the `@Parameter` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@Parameter` annotation
 
 The constraint is provided as a concrete class that implements the `org.apache.causeway.applib.spec.Specification` interface.
 This is usually done by subclassing `AbstractSpecification` or `AbstractSpecification2`:
@@ -21,7 +21,7 @@ This semantic can apply to all types, although the provided `Specification` must
 
 == Annotated
 
-The `mustSatisfy` element can be specified explicitly using an annotation:
+The `mustSatisfy` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@Property#mustSatisfy()`:
 +
@@ -52,7 +52,7 @@ The annotation could also be applied to a mixin, but would have little effect be
 
 CAUTION: this feature is currently broken, see link:https://issues.apache.org/jira/browse/CAUSEWAY-2415[CAUSEWAY-2415].
 
-The `mustSatisfy` element can also be specified using a custom meta-annotation:
+The `mustSatisfy` attribute can also be specified using a custom meta-annotation:
 
 * the meta-annotation is defined as:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/optionality/PropertyOptionalityPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/optionality/PropertyOptionalityPage-description.adoc
index e568c8b54f..dcebc08415 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/optionality/PropertyOptionalityPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/optionality/PropertyOptionalityPage-description.adoc
@@ -2,11 +2,11 @@
 
 CAUTION: TODO: can also use `@Nullable`, for parameters at least.
 
-The `optionality` element specifies that a property or parameter is either optional or mandatory:
+The `optionality` attribute specifies that a property or parameter is either optional or mandatory:
 
-* for properties, the element can be specified using either the `@Property` annotation, or a meta-annotation
+* for properties, the attribute can be specified using the `@Property` annotation
 
-* for parameters, the element can be specified using either the `@Parameter` annotation, or a meta-annotation
+* for parameters, the attribute can be specified using the `@Parameter` annotation
 
 Without an annotation, the framework assumes that the property or parameter is mandatory, ie required.
 
@@ -23,7 +23,7 @@ Also note that JDO and JAXB assume a property is not required by default, wherea
 
 == Annotated
 
-The `optionality` element can be specified explicitly using an annotation:
+The `optionality` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@Property#optionality()`:
 +
@@ -45,7 +45,7 @@ The annotation could also be applied to a mixin, but would have little effect be
 
 == Meta-annotated
 
-The `optionality` element can also be specified using a custom meta-annotation:
+The `optionality` attribute can also be specified using a custom meta-annotation:
 
 * the meta-annotation is defined as:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/PropertyProjectingPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/PropertyProjectingPage-description.adoc
index c860c71624..3a39570f3a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/PropertyProjectingPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/PropertyProjectingPage-description.adoc
@@ -6,9 +6,9 @@ Sometimes though the columns to be shown will vary depending upon the use case w
 One way to fine-tune the columns shown is to implement the `TableColumnOrderService` SPI.
 An alternative is to define a view model as a projection of that entity, and return a collection of that view model instead.
 However, this view model requires the end-user to have to click first to the view model, and then to the backing entity instance that it wraps.
-The `projecting` element allows this extra hop to be eliminated.
+The `projecting` attribute allows this extra hop to be eliminated.
 
-The `projecting` element can only be used on a view model, and only on a single property of that view model,  and that property must return a reference to an entity (the backing entity).
+The `projecting` attribute can only be used on a view model, and only on a single property of that view model,  and that property must return a reference to an entity (the backing entity).
 
 Rather than render links to the view model, the viewer instead renders links directly to the entity.
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/regexPattern/PropertyRegexPatternPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/regexPattern/PropertyRegexPatternPage-description.adoc
index ce430862a8..19b57f1e9c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/regexPattern/PropertyRegexPatternPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/regexPattern/PropertyRegexPatternPage-description.adoc
@@ -1,16 +1,16 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `regexPattern` element specifies a regular expression that the value entered into the property must match:
+The `regexPattern` attribute specifies a regular expression that the value entered into the property must match:
 
-* for properties, the element can be specified using either the `@Property` annotation, or a meta-annotation
+* for properties, the attribute can be specified using the `@Property` annotation
 
-* for parameters, the element can be specified using either the `@Parameter` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@Parameter` annotation
 
 This semantic applies only to strings.
 
 == Annotated
 
-The `regexPattern` element can be specified explicitly using an annotation:
+The `regexPattern` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@Property#regexPattern()`:
 +
@@ -32,7 +32,7 @@ The annotation could also be applied to a mixin, but would have little effect be
 
 == Meta-annotated
 
-The `regexPattern` element can also be specified using a custom meta-annotation:
+The `regexPattern` attribute can also be specified using a custom meta-annotation:
 
 * the meta-annotation is defined as:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/snapshot/PropertySnapshotPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/snapshot/PropertySnapshotPage-description.adoc
index d5d3975eb8..7795934585 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/snapshot/PropertySnapshotPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/snapshot/PropertySnapshotPage-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `snapshot` element of the `@Property` annotation specifies whether a property should be included in an XML snapshot, as created by the `XmlSnapshotService`.
+The `snapshot` attribute of the `@Property` annotation specifies whether a property should be included in an XML snapshot, as created by the `XmlSnapshotService`.
 
 
 == Annotations and Meta-annotations
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/cssClass/PropertyLayoutCssClassPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/cssClass/PropertyLayoutCssClassPage-description.adoc
index 9ef5fc809a..81bd47155e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/cssClass/PropertyLayoutCssClassPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/cssClass/PropertyLayoutCssClassPage-description.adoc
@@ -1,16 +1,16 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `cssClass` element indicates that the `<div>` containing the property or parameter component within the UI should set the specified CSS class:
+The `cssClass` attribute indicates that the `<div>` containing the property or parameter component within the UI should set the specified CSS class:
 
-* for properties, the element can be specified using either the `@PropertyLayout` annotation, or a meta-annotation, or using the `Xxx.layout.xml` layout file.
+* for properties, the attribute can be specified using either the `@PropertyLayout` annotation, or using the `Xxx.layout.xml` layout file.
 
-* for parameters, the element can be specified using either the `@ParameterLayout` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@ParameterLayout` annotation
 
 The `application.css` file can then be used to apply styling to that CSS class
 
 == Annotated
 
-The `cssClass` element can be specified explicitly using an annotation:
+The `cssClass` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@PropertyLayout#cssClass()`:
 +
@@ -59,9 +59,9 @@ The `@PropertyLayout` can also be applied at the class-level to mixin properties
 
 [source,java,indent=0]
 ----
-include::PropertyLayoutCssClassVm_mixinProperty.java[tags=class]
+include::PropertyLayoutCssClassPage_mixinProperty.java[tags=class]
 ----
-<.> explicitly specifies the CSS class element for the contributed property
+<.> explicitly specifies the CSS class for the contributed property
 
 == Meta-annotated
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/hidden/PropertyLayoutHiddenPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/hidden/PropertyLayoutHiddenPage-description.adoc
index ed2ae294f6..efbc405dc8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/hidden/PropertyLayoutHiddenPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/hidden/PropertyLayoutHiddenPage-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/PropertyLayout.html#hidden[@PropertyLayout#hidden] element specifies whether a property should be visible in the UI or not.
+The link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/PropertyLayout.html#hidden[@PropertyLayout#hidden] attribute specifies whether a property should be visible in the UI or not.
 
 == How this demo works
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/labelPosition/PropertyLayoutLabelPositionPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/labelPosition/PropertyLayoutLabelPositionPage-description.adoc
index 8ad755b5d3..7a69b3d254 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/labelPosition/PropertyLayoutLabelPositionPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/labelPosition/PropertyLayoutLabelPositionPage-description.adoc
@@ -1,10 +1,10 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `labelPosition` element indicates where the label for a property to be rendered: typically to the left or the top, or sometimes none:
+The `labelPosition` attribute indicates where the label for a property to be rendered: typically to the left or the top, or sometimes none:
 
-* for properties, the element can be specified using either the `@PropertyLayout` annotation, or a meta-annotation, or using the `Xxx.layout.xml` layout file.
+* for properties, the attribute can be specified using either the `@PropertyLayout` annotation, or using the `Xxx.layout.xml` layout file.
 
-* for parameters, the element can be specified using either the `@ParameterLayout` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@ParameterLayout` annotation
 
 Some data types also support the label being rendered to the right (support for this is shown on each of the demo pages for each of the data types).
 
@@ -12,7 +12,7 @@ Some data types also support the label being rendered to the right (support for
 
 == Annotated
 
-The `labelPosition` element can be specified explicitly using an annotation:
+The `labelPosition` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@PropertyLayout#labelPosition()`:
 +
@@ -32,7 +32,7 @@ include::PropertyLayoutLabelPositionPage_updateWithParameterLayout.java[tags=ann
 
 == Layout File
 
-For properties (not parameters), the CSS class element can be specified using the `Xxx.layout.xml` file:
+For properties (not parameters), the CSS class can be specified using the `Xxx.layout.xml` file:
 
 * property definition:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/multiLine/PropertyLayoutMultiLinePage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/multiLine/PropertyLayoutMultiLinePage-description.adoc
index 5b4085a293..5f5d4d10f8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/multiLine/PropertyLayoutMultiLinePage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/multiLine/PropertyLayoutMultiLinePage-description.adoc
@@ -1,16 +1,16 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `multiLine` element indicates that a textbox of the specified number of lines should be used to render a property or parameter:
+The `multiLine` attribute indicates that a textbox of the specified number of lines should be used to render a property or parameter:
 
-* for properties, the element can be specified using either the `@PropertyLayout` annotation, or a meta-annotation, or using the `Xxx.layout.xml` layout file.
+* for properties, the attribute can be specified using the `@PropertyLayout` annotation, or using the `Xxx.layout.xml` layout file.
 
-* for parameters, the element can be specified using either the `@ParameterLayout` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@ParameterLayout` annotation.
 
-The element is currently supported only for properties and parameters of type ``String``s.
+The attribute is currently supported only for properties and parameters of type ``String``s.
 
 == Annotated
 
-The `multiline` element can be specified explicitly using an annotation:
+The `multiline` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@PropertyLayout#multiLine()`:
 +
@@ -30,7 +30,7 @@ include::PropertyLayoutMultiLinePage_updateWithParameterLayout.java[tags=annotat
 
 == Layout File
 
-For properties (not parameters), the `multiline` element can be specified using the `Xxx.layout.xml` file:
+For properties (not parameters), the `multiline` attribute can be specified using the `Xxx.layout.xml` file:
 
 * property definition:
 +
@@ -65,7 +65,7 @@ include::PropertyLayoutMultiLinePage_mixinProperty.java[tags=class]
 
 == Meta-annotated
 
-The `multiline` element can also be specified using a custom meta-annotation:
+The `multiline` attribute can also be specified using a custom meta-annotation:
 
 * the meta-annotation is defined as:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/navigable/FileNodeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/navigable/FileNodeVm-description.adoc
index 4afce76c94..61efeb3264 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/navigable/FileNodeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/navigable/FileNodeVm-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `navigable` element allows the viewer to construct a breadcrumb trail.
+The `navigable` attribute allows the viewer to construct a breadcrumb trail.
 It is commonly used with objects forming a hierarchy, and so often is used in conjunction with the `TreeNode` value type.
 
 This app uses the filesystem of the host computer to illustrate the idea:
@@ -11,14 +11,14 @@ This app uses the filesystem of the host computer to illustrate the idea:
 This allows the user to drill into the tree and inspect the individual files, without "losing their place".
 
 The mechanics of creating the tree are shown below.
-But first, let's discuss the `navigable` element as a means to construct breadcrumbs.
+But first, let's discuss the `navigable` attribute as a means to construct breadcrumbs.
 
 == Navigable (Breadcrumbs)
 
 For all ``FileNode``s a breadcrumb trail is rendered.
 The one node where this is not visible is the initial root node (see the `path` property), because it has no parent.
 
-The framework constructs the breadcrumbs using the value returned by the property with the `navigable` element.
+The framework constructs the breadcrumbs using the value returned by the property with the `navigable` attribute.
 This hint should be used on no more than one property of the object, and points back to the logical parent of the domain object:
 
 [source,java,indent=0]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/renderDay/PropertyLayoutRenderDayPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/renderDay/PropertyLayoutRenderDayPage-description.adoc
index 0c2e674664..0e6e4cb09f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/renderDay/PropertyLayoutRenderDayPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/renderDay/PropertyLayoutRenderDayPage-description.adoc
@@ -1,6 +1,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `renderDay` element applies to date fields, and indicates that the date rendered should be one day before the day actually held in the property.
+The `renderDay` attribute applies to date fields, and indicates that the date rendered should be one day before the day actually held in the property.
 
 The typical use case for this is when two date properties together model an interval, namely a "startDate" and an "endDate".
 
@@ -14,13 +14,13 @@ For example,  ['Mon 1 Jan', 'Mon 8 Jan'), then ['Mon 8 Jan', 'Mon 15 Jan')`.
 
 This UI hint therefore allows the domain object to use an exclusive end date, thus simplifying business logic, but to be rendered the day before, as if with an inclusive end date.
 
-The element applies to both properties and parameters:
+The attribute applies to both properties and parameters:
 
-* for properties, the element can be specified using either the `@PropertyLayout` annotation, or a meta-annotation, or using the `Xxx.layout.xml` layout file.
+* for properties, the attribute can be specified using either the `@PropertyLayout` annotation, or using the `Xxx.layout.xml` layout file.
 
-* for parameters, the element can be specified using either the `@ParameterLayout` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using the `@ParameterLayout` annotation.
 
-The element is supported only for properties and parameters representing dates/times.
+The attribute is supported only for properties and parameters representing dates/times.
 
 // TODO: java.time datatypes not yet supported.
 
@@ -28,7 +28,7 @@ TIP: You can inspect the "raw" data of the domain object, using the "download as
 
 == Annotated
 
-The `renderDay` element can be specified explicitly using an annotation:
+The `renderDay` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@PropertyLayout#renderDay()`:
 +
@@ -48,7 +48,7 @@ include::PropertyLayoutRenderDayVm_updateEndDateWithParameterLayout.java[tags=an
 
 == Layout File
 
-For properties (not parameters), the `renderDay` element can be specified using the `Xxx.layout.xml` file:
+For properties (not parameters), the `renderDay` attribute can be specified using the `Xxx.layout.xml` file:
 
 * property definition:
 +
@@ -81,7 +81,7 @@ include::PropertyLayoutRenderDayVm_mixinEndDateWithPropertyLayout.java[tags=clas
 
 == Meta-annotated
 
-The `renderDay` element can also be specified using a custom meta-annotation:
+The `renderDay` attribute can also be specified using a custom meta-annotation:
 
 * the meta-annotation is defined as:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/repainting/PropertyLayoutRepaintingPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/repainting/PropertyLayoutRepaintingPage-description.adoc
index 6b749dd3e6..5e2e11145c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/repainting/PropertyLayoutRepaintingPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/repainting/PropertyLayoutRepaintingPage-description.adoc
@@ -1,11 +1,11 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `repainting` element indicates that the value held by the property never changes over time, even when other properties of the object do change.
+The `repainting` attribute indicates that the value held by the property never changes over time, even when other properties of the object do change.
 When set to "no repaint", the viewer uses this element to not repaint the property after an AJAX update even if some other property/ies of the object have changed.
 
-* for properties, the element can be specified using either the `@PropertyLayout` annotation, or a meta-annotation, or using the `Xxx.layout.xml` layout file.
+* for properties, the attribute can be specified using either the `@PropertyLayout` annotation, or using the `Xxx.layout.xml` layout file.
 
-The element does _not_ apply for action parameters.
+The attribute does _not_ apply for action parameters.
 
 The primarily use case for performance, eg can improve the user experience when rendering PDFs/blobs.
 
@@ -14,7 +14,7 @@ Said another way: if only one blob/clob property requires a repaint, then all wi
 
 == Annotated
 
-The (no) repainting element can be specified explicitly using an annotation:
+The (no) repainting hint can be specified explicitly using an annotation:
 
 * for properties, using `@PropertyLayout#repainting()`:
 +
@@ -27,7 +27,7 @@ include::PropertyLayoutRepaintingPage.java[tags=annotation]
 
 == Layout File
 
-For properties (not parameters), the `renderDay` element can be specified using the `Xxx.layout.xml` file:
+For properties (not parameters), the `renderDay` attribute can be specified using the `Xxx.layout.xml` file:
 
 * property definition:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/typicalLength/PropertyLayoutTypicalLengthPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/typicalLength/PropertyLayoutTypicalLengthPage-description.adoc
index 030555f011..54b2763832 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/typicalLength/PropertyLayoutTypicalLengthPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/typicalLength/PropertyLayoutTypicalLengthPage-description.adoc
@@ -1,16 +1,16 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-The `typicalLength` element is intended to indicate the size that a textfield should be rendered as a visual indicator of the expected length:
+The `typicalLength` attribute is intended to indicate the size that a textfield should be rendered as a visual indicator of the expected length:
 
-* for properties, the element can be specified using either the `@PropertyLayout` annotation, or a meta-annotation, or using the `Xxx.layout.xml` layout file.
+* for properties, the attribute can be specified using either the `@PropertyLayout` annotation, or using the `Xxx.layout.xml` layout file.
 
-* for parameters, the element can be specified using either the `@ParameterLayout` annotation, or a meta-annotation.
+* for parameters, the attribute can be specified using either the `@ParameterLayout` annotation.
 
 [CAUTION]
 ====
-The Wicket viewer does not use this element, instead preferring to render all textfields as the same size irrespective.
+The Wicket viewer does not use this hint, instead preferring to render all textfields as the same size irrespective.
 
-In other words, providing this element has no impact on the UI (as rendered by the Wicket viewer, at least).
+In other words, providing this hint has no impact on the UI (as rendered by the Wicket viewer, at least).
 ====
 
 [NOTE]
@@ -20,7 +20,7 @@ In other words, providing this element has no impact on the UI (as rendered by t
 
 == Annotated
 
-The `typicalLength` element can be specified explicitly using an annotation:
+The `typicalLength` attribute can be specified explicitly using an annotation:
 
 * for properties, using `@PropertyLayout#typicalLength()`:
 +
@@ -40,7 +40,7 @@ include::PropertyLayoutTypicalLengthVm_updateWithParameterLayout.java[tags=annot
 
 == Layout File
 
-For properties (not parameters), the `typicalLength` element can be specified using the `Xxx.layout.xml` file:
+For properties (not parameters), the `typicalLength` attribute can be specified using the `Xxx.layout.xml` file:
 
 * property definition:
 +
@@ -75,7 +75,7 @@ include::PropertyLayoutTypicalLengthVm_mixinProperty.java[tags=class]
 
 == Meta-annotated
 
-The `typicalLength` element can also be specified using a custom meta-annotation:
+The `typicalLength` attribute can also be specified using a custom meta-annotation:
 
 * the meta-annotation is defined as:
 +
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/services/core/xmlSnapshotService/XmlSnapshotParentVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/services/core/xmlSnapshotService/XmlSnapshotParentVm-description.adoc
index 506951e7ff..2dacd61774 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/services/core/xmlSnapshotService/XmlSnapshotParentVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/services/core/xmlSnapshotService/XmlSnapshotParentVm-description.adoc
@@ -8,7 +8,7 @@ This XML could for example be hashed and digitally signed, to form the basis of
 
 [TIP]
 ====
-It is possible to explicitly exclude properties from the snapshot using the `@Property(snapshot=...)` element.
+It is possible to explicitly exclude properties from the snapshot using the `@Property(snapshot=...)` attribute.
 ====
 
 In addition to generating XML, the service can also generate an XSD schema that the XML will be conformant with.