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

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


The following commit(s) were added to refs/heads/master by this push:
     new 898f604ec Update new docs
898f604ec is described below

commit 898f604ec28dbf0d5be9d3fe79a46a7d40d06053
Author: James Bognar <[email protected]>
AuthorDate: Wed Sep 17 06:55:07 2025 -0400

    Update new docs
---
 juneau-docs-poc/docs/topics/02.11.02.AutoSwaps.md  |   6 +-
 .../02.12.00.DynamicallyAppliedAnnotations.md      |  42 ++-
 .../docs/topics/02.13.00.BeanDictionaries.md       |  16 +-
 .../topics/02.16.00.ParsingIntoGenericModels.md    |  11 +-
 .../topics/02.17.00.ReadingContinuousStreams.md    |  14 +-
 .../docs/topics/02.18.00.MarshallingUris.md        |  20 +-
 .../docs/topics/02.20.00.PojoCategories.md         | 365 +++++++++++++-----
 .../docs/topics/02.21.00.SimpleVariableLanguage.md |  13 +-
 juneau-docs-poc/sidebars.ts                        | 414 ++++++---------------
 9 files changed, 437 insertions(+), 464 deletions(-)

diff --git a/juneau-docs-poc/docs/topics/02.11.02.AutoSwaps.md 
b/juneau-docs-poc/docs/topics/02.11.02.AutoSwaps.md
index 545505b48..38e47c302 100644
--- a/juneau-docs-poc/docs/topics/02.11.02.AutoSwaps.md
+++ b/juneau-docs-poc/docs/topics/02.11.02.AutoSwaps.md
@@ -69,7 +69,6 @@ import static org.apache.juneau.dto.html5.HtmlBuilder.*;
 
 /**
 * A simple HTML form template whose serialized form is an HTML5 Form object.
-
 */
 public class FormTemplate {
 
@@ -95,9 +94,7 @@ public class FormTemplate {
 ```
 
 Swapped objects can be converted back into their original form by the parsers 
by specifying one of the following methods:
-- `public static T unswap(BeanSession, X)` method where `X` is the
-
-swap class type.
+- `public static T unswap(BeanSession, X)` method where `X` is the swap class 
type.
 - `public T(X)` constructor where `X` is the swap class type.
 
 The following shows how our form template class can be modified to allow the 
parsers to reconstruct our original object:
@@ -108,7 +105,6 @@ import static org.apache.juneau.dto.html5.HtmlBuilder.*;
 /**
 * A simple HTML form template whose serialized form is an HTML5 Form object.
 * This time with parsing support.
-
 */
 @Bean(dictionary=HtmlBeanDictionary.class)
 public class FormTemplate {
diff --git 
a/juneau-docs-poc/docs/topics/02.12.00.DynamicallyAppliedAnnotations.md 
b/juneau-docs-poc/docs/topics/02.12.00.DynamicallyAppliedAnnotations.md
index a59bcea34..dd33d5f87 100644
--- a/juneau-docs-poc/docs/topics/02.12.00.DynamicallyAppliedAnnotations.md
+++ b/juneau-docs-poc/docs/topics/02.12.00.DynamicallyAppliedAnnotations.md
@@ -41,26 +41,28 @@ public List getAddresses() {}
 Any Juneau annotation that has an `on()/onClass()` method can be applied 
dynamically this way.
 These include:
 
-<java-annotation>[Bean]({{API_DOCS}}/org/apache/juneau/annotation/Bean.html)</java-annotation>
  
-<java-annotation>[Beanc]({{API_DOCS}}/org/apache/juneau/annotation/Beanc.html)</java-annotation>
  
-<java-annotation>[BeanIgnore]({{API_DOCS}}/org/apache/juneau/annotation/BeanIgnore.html)</java-annotation>
  
-<java-annotation>[Beanp]({{API_DOCS}}/org/apache/juneau/annotation/Beanp.html)</java-annotation>
  
-<java-annotation>[Example]({{API_DOCS}}/org/apache/juneau/annotation/Example.html)</java-annotation>
  
-<java-annotation>[NameProperty]({{API_DOCS}}/org/apache/juneau/annotation/NameProperty.html)</java-annotation>
  
-<java-annotation>[ParentProperty]({{API_DOCS}}/org/apache/juneau/annotation/ParentProperty.html)</java-annotation>
  
-<java-annotation>[Swap]({{API_DOCS}}/org/apache/juneau/annotation/Swap.html)</java-annotation>
  
-<java-annotation>[Uri]({{API_DOCS}}/org/apache/juneau/annotation/Uri.html)</java-annotation>
  
-<java-annotation>[Csv]({{API_DOCS}}/org/apache/juneau/csv/annotation/Csv.html)</java-annotation>
  
-<java-annotation>[Html]({{API_DOCS}}/org/apache/juneau/html/annotation/Html.html)</java-annotation>
  
-<java-annotation>[Json]({{API_DOCS}}/org/apache/juneau/json/annotation/Json.html)</java-annotation>
  
-<java-annotation>[Schema]({{API_DOCS}}/org/apache/juneau/annotation/Schema.html)</java-annotation>
  
-<java-annotation>[MsgPack]({{API_DOCS}}/org/apache/juneau/msgpack/annotation/MsgPack.html)</java-annotation>
  
-<java-annotation>[OpenApi]({{API_DOCS}}/org/apache/juneau/oapi/annotation/OpenApi.html)</java-annotation>
  
-<java-annotation>[PlainText]({{API_DOCS}}/org/apache/juneau/plaintext/annotation/PlainText.html)</java-annotation>
  
-<java-annotation>[SoapXml]({{API_DOCS}}/org/apache/juneau/soap/annotation/SoapXml.html)</java-annotation>
  
-<java-annotation>[Uon]({{API_DOCS}}/org/apache/juneau/uon/annotation/Uon.html)</java-annotation>
  
-<java-annotation>[UrlEncoding]({{API_DOCS}}/org/apache/juneau/urlencoding/annotation/UrlEncoding.html)</java-annotation>
  
-<java-annotation>[Xml]({{API_DOCS}}/org/apache/juneau/xml/annotation/Xml.html)</java-annotation>
  
+<tree>
+<java-annotation>[Bean]({{API_DOCS}}/org/apache/juneau/annotation/Bean.html)</java-annotation>
+<java-annotation>[Beanc]({{API_DOCS}}/org/apache/juneau/annotation/Beanc.html)</java-annotation>
+<java-annotation>[BeanIgnore]({{API_DOCS}}/org/apache/juneau/annotation/BeanIgnore.html)</java-annotation>
+<java-annotation>[Beanp]({{API_DOCS}}/org/apache/juneau/annotation/Beanp.html)</java-annotation>
+<java-annotation>[Example]({{API_DOCS}}/org/apache/juneau/annotation/Example.html)</java-annotation>
+<java-annotation>[NameProperty]({{API_DOCS}}/org/apache/juneau/annotation/NameProperty.html)</java-annotation>
+<java-annotation>[ParentProperty]({{API_DOCS}}/org/apache/juneau/annotation/ParentProperty.html)</java-annotation>
+<java-annotation>[Swap]({{API_DOCS}}/org/apache/juneau/annotation/Swap.html)</java-annotation>
+<java-annotation>[Uri]({{API_DOCS}}/org/apache/juneau/annotation/Uri.html)</java-annotation>
+<java-annotation>[Csv]({{API_DOCS}}/org/apache/juneau/csv/annotation/Csv.html)</java-annotation>
+<java-annotation>[Html]({{API_DOCS}}/org/apache/juneau/html/annotation/Html.html)</java-annotation>
+<java-annotation>[Json]({{API_DOCS}}/org/apache/juneau/json/annotation/Json.html)</java-annotation>
+<java-annotation>[Schema]({{API_DOCS}}/org/apache/juneau/annotation/Schema.html)</java-annotation>
+<java-annotation>[MsgPack]({{API_DOCS}}/org/apache/juneau/msgpack/annotation/MsgPack.html)</java-annotation>
+<java-annotation>[OpenApi]({{API_DOCS}}/org/apache/juneau/oapi/annotation/OpenApi.html)</java-annotation>
+<java-annotation>[PlainText]({{API_DOCS}}/org/apache/juneau/plaintext/annotation/PlainText.html)</java-annotation>
+<java-annotation>[SoapXml]({{API_DOCS}}/org/apache/juneau/soap/annotation/SoapXml.html)</java-annotation>
+<java-annotation>[Uon]({{API_DOCS}}/org/apache/juneau/uon/annotation/Uon.html)</java-annotation>
+<java-annotation>[UrlEncoding]({{API_DOCS}}/org/apache/juneau/urlencoding/annotation/UrlEncoding.html)</java-annotation>
+<java-annotation>[Xml]({{API_DOCS}}/org/apache/juneau/xml/annotation/Xml.html)</java-annotation>
+</tree>
 
 The valid pattern matches are:
 - Classes:
diff --git a/juneau-docs-poc/docs/topics/02.13.00.BeanDictionaries.md 
b/juneau-docs-poc/docs/topics/02.13.00.BeanDictionaries.md
index 5d78506ee..78b3c8d43 100644
--- a/juneau-docs-poc/docs/topics/02.13.00.BeanDictionaries.md
+++ b/juneau-docs-poc/docs/topics/02.13.00.BeanDictionaries.md
@@ -48,21 +48,21 @@ This allows the `typeName` annotation to be used as a 
shortcut for defining elem
 When serialized as XML, the bean is rendered as:
 
 ```xml
-&lt;foo&gt;
-    &lt;x&gt;
-        &lt;bar/&gt;
-        &lt;baz/&gt;
-    &lt;/x&gt;
-&lt;/foo&gt;
+<foo>
+    <x>
+        <bar/>
+        <baz/>
+    </x>
+</foo>
 ```
 
 Bean dictionaries are registered through the following:
 
 <tree>
 
<java-annotation>[Beanp]({{API_DOCS}}/org/apache/juneau/annotation/Beanp.html)</java-annotation>
-<node-1><java-method>[dictionary]({{API_DOCS}}/org/apache/juneau/annotation/Beanp.html#dictionary())</java-method></node-1>
+<node-1><java-method-annotation>[dictionary]({{API_DOCS}}/org/apache/juneau/annotation/Beanp.html#dictionary())</java-method-annotation></node-1>
 
<java-annotation>[Bean]({{API_DOCS}}/org/apache/juneau/annotation/Bean.html)</java-annotation>
-<node-1><java-method>[dictionary]({{API_DOCS}}/org/apache/juneau/annotation/Bean.html#dictionary())</java-method></node-1>
+<node-1><java-method-annotation>[dictionary]({{API_DOCS}}/org/apache/juneau/annotation/Bean.html#dictionary())</java-method-annotation></node-1>
 
<java-class>[BeanContext.Builder]({{API_DOCS}}/org/apache/juneau/BeanContext/Builder.html)</java-class>
 <node-1><java-method>[beanDictionary(Class...)](TODO.md)</java-method></node-1>
 </tree>
diff --git a/juneau-docs-poc/docs/topics/02.16.00.ParsingIntoGenericModels.md 
b/juneau-docs-poc/docs/topics/02.16.00.ParsingIntoGenericModels.md
index b6361085a..c8527073c 100644
--- a/juneau-docs-poc/docs/topics/02.16.00.ParsingIntoGenericModels.md
+++ b/juneau-docs-poc/docs/topics/02.16.00.ParsingIntoGenericModels.md
@@ -4,13 +4,11 @@ title: "Parsing into Generic Models"
 
 The Juneau parsers are not limited to parsing back into the original bean 
classes.
 If the bean classes are not available on the parsing side, the parser can also 
be used to parse into a generic model consisting of `Maps`, `Collections`, and 
primitive objects.
-You can parse into any `Map` type (e.g.
-`HashMap`, `TreeMap`) but using 
[JsonMap]({{API_DOCS}}/org/apache/juneau/collections/JsonMap.html) is 
recommended since it has many convenience methods for converting values to 
various types.
+You can parse into any `Map` type (e.g. `HashMap`, `TreeMap`) but using 
[JsonMap]({{API_DOCS}}/org/apache/juneau/collections/JsonMap.html) is 
recommended since it has many convenience methods for converting values to 
various types.
 The same is true when parsing collections.
-You can use any Collection (e.g.
-`HashSet`, `LinkedList`) or array (e.g.
-`Object[]`, `String[]`, `String[][]`) but using 
[JsonList]({{API_DOCS}}/org/apache/juneau/collections/JsonList.html) is 
recommended.
+You can use any Collection (e.g. `HashSet`, `LinkedList`) or array (e.g. 
`Object[]`, `String[]`, `String[][]`) but using 
[JsonList]({{API_DOCS}}/org/apache/juneau/collections/JsonList.html) is 
recommended.
 When the map or list type is not specified, or is the abstract `Map`, 
`Collection`, or `List` types, the parser will use `JsonMap` and `JsonList` by 
default.
+
 For example, given the following JSON:
 
 ```json
@@ -35,7 +33,6 @@ For example, given the following JSON:
 }
 ```
 
-
 We can parse this into a generic `JsonMap`:
 
 ```java
@@ -46,7 +43,6 @@ JsonMap map = Json.to(json, JsonMap.class);
 String json = Json5.of(map);
 ```
 
-
 What we end up with is the exact same output.
 Even the numbers and booleans are preserved because they are parsed into 
`Number` and `Boolean` objects when parsing into generic models.
 
@@ -72,7 +68,6 @@ Even the numbers and booleans are preserved because they are 
parsed into `Number
 }
 ```
 
-
 Once parsed into a generic model, various convenience methods are provided on 
the `JsonMap` and `JsonList` classes to retrieve values:
 
 ```java
diff --git a/juneau-docs-poc/docs/topics/02.17.00.ReadingContinuousStreams.md 
b/juneau-docs-poc/docs/topics/02.17.00.ReadingContinuousStreams.md
index c85c74bdc..18f59df21 100644
--- a/juneau-docs-poc/docs/topics/02.17.00.ReadingContinuousStreams.md
+++ b/juneau-docs-poc/docs/topics/02.17.00.ReadingContinuousStreams.md
@@ -4,9 +4,11 @@ title: "Reading Continuous Streams"
 
 The following parsers can be configured to read continuous streams of objects 
from the same input stream:
 
-<java-class>[JsonParser]({{API_DOCS}}/org/apache/juneau/json/JsonParser.html)</java-class>
-<java-class>[UonParser]({{API_DOCS}}/org/apache/juneau/uon/UonParser.html)</java-class>
-<java-class>[MsgPackParser]({{API_DOCS}}/org/apache/juneau/msgpack/MsgPackParser.html)</java-class>
+<tree>
+<java-class>[JsonParser]({{API_DOCS}}/org/apache/juneau/json/JsonParser.html)</java-class>
  
+<java-class>[UonParser]({{API_DOCS}}/org/apache/juneau/uon/UonParser.html)</java-class>
  
+<java-class>[MsgPackParser]({{API_DOCS}}/org/apache/juneau/msgpack/MsgPackParser.html)</java-class>
  
+</tree>
 
 The [JsonParser]({{API_DOCS}}/org/apache/juneau/json/JsonParser.html) and 
[UonParser]({{API_DOCS}}/org/apache/juneau/uon/UonParser.html) classes can read 
continuous streams by using the 
[Builder#unbuffered()]({{API_DOCS}}/org/apache/juneau/parser/Parser/Builder.html#unbuffered())
 setting.
 This prevents the parsers from using an internal buffer that would read past 
the end of the currently parsed POJO.
@@ -30,8 +32,7 @@ pojo = session.parse(reader, int[].class);  // [456]
 
 :::
 
-Note that this isn't perfect in all cases since you can't combine two JSON 
numbers into a single reader (e.g.
-`"123" + "456" = "123456"`).
+Note that this isn't perfect in all cases since you can't combine two JSON 
numbers into a single reader (e.g. `"123" + "456" = "123456"`).
 
 :::note
 For obvious reasons, do not use the following properties when reading 
continuous streams:
@@ -45,5 +46,6 @@ For obvious reasons, do not use the following properties when 
reading continuous
 </tree>
 :::
 
+:::note
 The [MsgPackParser]({{API_DOCS}}/org/apache/juneau/msgpack/MsgPackParser.html) 
class doesn't use any internal buffering to begin with, so it can be used with 
continuous streams without any special properties.
-
+:::
diff --git a/juneau-docs-poc/docs/topics/02.18.00.MarshallingUris.md 
b/juneau-docs-poc/docs/topics/02.18.00.MarshallingUris.md
index 45b1040d2..8a3a8fac8 100644
--- a/juneau-docs-poc/docs/topics/02.18.00.MarshallingUris.md
+++ b/juneau-docs-poc/docs/topics/02.18.00.MarshallingUris.md
@@ -3,6 +3,7 @@ title: "URIs"
 ---
 
 Juneau serializers have sophisticated support for transforming relative URIs 
to absolute form.
+
 The following example shows a bean containing URIs of various forms and how 
they end up serialized.
 
 ```java
@@ -70,14 +71,17 @@ String json = serializer.serialize(new TestURIs());
 ```
 
 URI resolution is controlled by the following settings:
-- 
[Builder#uriContext(UriContext)]({{API_DOCS}}/org/apache/juneau/serializer/Serializer/Builder.html#uriContext(UriContext))
 - Setting that defines the URI contextual information used to resolve relative 
URIs.
-- 
[Builder#uriRelativity(UriRelativity)]({{API_DOCS}}/org/apache/juneau/serializer/Serializer/Builder.html#uriRelativity(UriRelativity))
 - Setting that defines how relative URIs should be interpreted.  Possible 
values:
-   - 
[UriRelativity#RESOURCE]({{API_DOCS}}/org/apache/juneau/UriRelativity.html#RESOURCE)
 - Relative URIs should be considered relative to the servlet URI.  (e.g. 
`http://host:port/context-root/servlet-path`).
-   - 
[UriRelativity#PATH_INFO]({{API_DOCS}}/org/apache/juneau/UriRelativity.html#PATH_INFO)
 - Relative URIs should be considered relative to the request URI.  (e.g. 
`http://host:port/context-root/servlet-path/path-info`).
-- 
[Builder#uriResolution(UriResolution)]({{API_DOCS}}/org/apache/juneau/serializer/Serializer/Builder.html#uriResolution(UriResolution))
 - Setting that defines the final format of serialized URIs.  Possible values:
-   - 
[UriResolution#ABSOLUTE]({{API_DOCS}}/org/apache/juneau/UriResolution.html#ABSOLUTE)
 - Resolve to an absolute URL.  (e.g. 
`http://host:port/context-root/servlet-path/path-info`).
-   - 
[UriResolution#ROOT_RELATIVE]({{API_DOCS}}/org/apache/juneau/UriResolution.html#ROOT_RELATIVE)
 - Resolve to a root-relative URL.  (e.g. 
"/context-root/servlet-path/path-info").
-   - 
[UriResolution#NONE]({{API_DOCS}}/org/apache/juneau/UriResolution.html#NONE) - 
Don't do any URL resolution.
+
+<tree>
+<java-method>[Builder#uriContext(UriContext)]({{API_DOCS}}/org/apache/juneau/serializer/Serializer/Builder.html#uriContext(UriContext))
 - Setting that defines the URI contextual information used to resolve relative 
URIs.</java-method>
+<java-method>[Builder#uriRelativity(UriRelativity)]({{API_DOCS}}/org/apache/juneau/serializer/Serializer/Builder.html#uriRelativity(UriRelativity))
 - Setting that defines how relative URIs should be interpreted.  Possible 
values:</java-method>
+<node-1><java-field>[UriRelativity#RESOURCE]({{API_DOCS}}/org/apache/juneau/UriRelativity.html#RESOURCE)
 - Relative URIs should be considered relative to the servlet URI.  (e.g. 
`http://host:port/context-root/servlet-path`).</java-field></node-1>
+<node-1><java-field>[UriRelativity#PATH_INFO]({{API_DOCS}}/org/apache/juneau/UriRelativity.html#PATH_INFO)
 - Relative URIs should be considered relative to the request URI.  (e.g. 
`http://host:port/context-root/servlet-path/path-info`).</java-field></node-1>
+<java-method>[Builder#uriResolution(UriResolution)]({{API_DOCS}}/org/apache/juneau/serializer/Serializer/Builder.html#uriResolution(UriResolution))
 - Setting that defines the final format of serialized URIs.  Possible 
values:</java-method>
+<node-1><java-field>[UriResolution#ABSOLUTE]({{API_DOCS}}/org/apache/juneau/UriResolution.html#ABSOLUTE)
 - Resolve to an absolute URL.  (e.g. 
`http://host:port/context-root/servlet-path/path-info`).</java-field></node-1>
+<node-1><java-field>[UriResolution#ROOT_RELATIVE]({{API_DOCS}}/org/apache/juneau/UriResolution.html#ROOT_RELATIVE)
 - Resolve to a root-relative URL.  (e.g. 
"/context-root/servlet-path/path-info").</java-field></node-1>
+<node-1><java-field>[UriResolution#NONE]({{API_DOCS}}/org/apache/juneau/UriResolution.html#NONE)
 - Don't do any URL resolution.</java-field></node-1>
+</tree>
 
 Juneau automatically interprets any [URL]({{API_DOCS}}/java/net/URL.html) and 
[URI]({{API_DOCS}}/java/net/URI.html) objects as URIs and will resolve them 
accordingly.
 The [@Uri]({{API_DOCS}}/org/apache/juneau/annotation/Uri.html) annotation can 
be used to extend that to other bean properties and class types so that they 
also get interpreted as URIs.
diff --git a/juneau-docs-poc/docs/topics/02.20.00.PojoCategories.md 
b/juneau-docs-poc/docs/topics/02.20.00.PojoCategories.md
index dca89c3fe..07238acc4 100644
--- a/juneau-docs-poc/docs/topics/02.20.00.PojoCategories.md
+++ b/juneau-docs-poc/docs/topics/02.20.00.PojoCategories.md
@@ -2,125 +2,304 @@
 title: "POJO Categories"
 ---
 
-In general, Juneau allows for marshalling for a wide variety of POJO types 
including: The following chart shows POJOs categorized into groups and whether 
they can be serialized or parsed:
+In general, Juneau allows for marshalling for a wide variety of POJO types 
including:
+
+The following chart shows POJOs categorized into groups and whether they can 
be serialized or parsed:
+
 ### General POJO serialization/parsing support
 
-GroupDescriptionExamplesCan serialize?Can parse?
-1 **Java primitives and primitive objects**
-- \{@code String\}
-- \{@code Integer\}
-- \{@code Float\}
-- \{@code Boolean\}
-
-**yes** **yes** 2 **Java Collections Framework objects, Java arrays, Java 
Optionals** 2a **With standard keys/values** Map keys are group [1, 4a, 6a] 
objects.
-Map, Collection, Optional, and array values are group [1, 2, 3ac, 4a, 6a] 
objects.
-`HashSet` `TreeMap` `List`
-- `Bean[]`
-
-`Optional` **yes** **yes** 2b **With non-standard keys/values** Map keys are 
group [2, 3, 4b, 5, 6b, 7] objects.
-Map, Collection, and array values are group [3b, 4b, 5, 6b, 7] objects.
-`HashSet` `TreeMap` `Optional` **yes** **no** 3 **Java Beans** 3a **With 
standard properties** These are beans that have one or more properties defined 
by public getter or public fields.
-Properties can also be defined as final read-only fields and passed in as 
constructor args.
-Property values are group [1, 2, 3ac, 4a, 6a] objects.
-**yes** **yes** 3b **With non-standard properties or not true beans** These 
include true beans that have one or more properties defined by getter and 
setter methods or properties but property types include group [3b, 4b, 5, 6b, 
7] objects.
-This also includes classes that look like beans but aren't true beans.
-For example, classes that have getters but not setters, or classes without 
no-arg constructors.
-**yes** **no** 3c **Virtual beans** These are unimplemented bean interfaces 
with properties of type [1, 2, 3ac, 4a, 6a] objects.
-Parsers will automatically  create interface proxies on top of BeanMap 
instances.
-**yes** **yes** 3d **Read-only beans without setters** The same as 3a but 
without property setters or constructor args.
-**yes** **no** 4 **Swapped objects** These are objects that are not directly 
serializable but have 
[ObjectSwaps]({{API_DOCS}}/org/apache/juneau/swap/ObjectSwap.html) associated 
with them.
-The purpose of a POJO swap is to convert an object to another object that is 
easier to serialize and parse.
-For example, the 
[IsoLocalDateTime]({{API_DOCS}}/org/apache/juneau/swaps/TemporalDateSwap/IsoLocalDateTime.html)
 class can be used to serialize [Date]({{API_DOCS}}/java/util/Date.html) 
objects to ISO8601 strings, and parse them back into 
[Date]({{API_DOCS}}/java/util/Date.html) objects.
-4a **2-way swapped to group [1, 2a, 3ac] objects** For example, a swap that 
converts a \{@code Date\} to a \{@code String\}.
-- `java.util.Date`
-- `java.util.GregorianCalendar`
-
-**yes** **yes** 4b **1-way swapped to group [1, 2, 3] objects** For example, a 
swap that converts an \{@code Iterator\} to a \{@code List\}.
-This would be one way, since you cannot reconstruct an \{@code Iterator\}.
-- `java.util.Iterator`
-
-**yes** **no** 5 **Readers and InputStreams** Contents are serialized directly 
to the output stream or writer.
-Typically used for low-level language-specific replacement of POJOs using 
per-Media-Type POJO swaps.
-- \{@code FileInputStream\}
-- \{@code StringReader\}
-
-**yes** **no** 6 **Non-serializable objects with standard methods for 
converting to a serializable form** 6a Classes with a method that converts it 
to a serializable form:
-- `public X swap(BeanSession);` where `X` is in groups
-
-[1, 2a, 3ac].
-- `public String toString();` where the string is any meaningful data.
-
-And a method that converts it back into the original object:
-- `public static T fromString(String);`
-- `public static T valueOf(String);`
-- `public static T parse(String);`
-- `public static T parseString(String);`
-- `public static T forName(String);`
-- `public static T forString(String);`
-- `public T(X);` where `X` is in groups [1, 2a, 3ac].
-- `public static T unswap(BeanSession,X);` where `X` is in
-
-groups [1, 2a, 3ac].
-- `java.lang.Class`
-- `java.sql.Time`
-- `java.sql.Timestamp`
-- `java.text.MessageFormat`
-- `java.text.NumberFormat`
-- `java.util.Date`
-- `java.util.UUID`
-- `java.util.logging.Level`
-- `javax.xml.bind.DatatypeConverter`
-
-**yes** **yes** 6b Classes that only have a method to convert to a 
serializable form:
-- `public X swap(BeanSession);` where `X` is in groups
-
-[1, 2, 3].
-- `public String toString();` where the string is any meaningful data.
-
-**yes** **no** 7 **All other objects** Anything that doesn't fall into one of 
the groups above are simply converted to \{@code Strings\} using the \{@code 
toString()\} method.
-**yes** **no** Serializers are designed to work on tree-shaped POJO models.
-These are models where there are no referential loops (e.g.
-leaves with references to nodes, or nodes in one branch referencing nodes in 
another branch).
-There is a serializer setting \{@code detectRecursions\} to look for and 
handle these kinds of loops (by setting these references to null) but it is not 
enabled by default since it introduces a moderate performance penalty.
+<table className="styled w800" style={{borderCollapse: 'collapse'}}>
+  <tr>
+    <th>Group</th>
+    <th>Description</th>
+    <th>Examples</th>
+    <th>Can<br />serialize?</th>
+    <th>Can<br />parse?</th>
+  </tr>
+  <tr className="dark bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>1</td>
+    <td><b>Java primitives and primitive objects</b></td>
+    <td>
+      <ul className="normal">
+        <li>`String`</li>
+        <li>`Integer`</li>
+        <li>`Float`</li>
+        <li>`Boolean`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+  </tr>
+  <tr className="dark bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>2</td>
+    <td><b>Java Collections Framework objects, Java arrays, Java 
Optionals</b></td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>2a</td>
+    <td>
+      <b>With standard keys/values</b><br />
+      Map keys are group [1, 4a, 6a] objects.<br />
+      Map, Collection, Optional, and array values are group [1, 2, 3ac, 4a, 
6a] objects.
+    </td>
+    <td>
+      <ul className="normal">
+        <li>`HashSet<String,Integer>`</li>
+        <li>`TreeMap<Integer,Bean>`</li>
+        <li>`List<int[][]>`</li>
+        <li>`Bean[]`</li>
+        <li>`Optional<Bean>`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>2b</td>
+    <td>
+      <b>With non-standard keys/values</b><br />
+      Map keys are group [2, 3, 4b, 5, 6b, 7] objects.<br />
+      Map, Collection, and array values are group [3b, 4b, 5, 6b, 7] objects.
+    </td>
+    <td>
+      <ul className="normal">
+        <li>`HashSet<Bean,Integer>`</li>
+        <li>`TreeMap<Integer,Reader>`</li>
+        <li>`Optional<Reader>`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+  <tr className="dark bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>3</td>
+    <td><b>Java Beans</b></td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>3a</td>
+    <td>
+      <b>With standard properties</b><br />
+      These are beans that have one or more properties defined by public 
getter or public fields.<br />
+      Properties can also be defined as final read-only fields and passed in 
as constructor args.<br />
+      Property values are group [1, 2, 3ac, 4a, 6a] objects.
+    </td>
+    <td>&nbsp;</td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>3b</td>
+    <td>
+      <b>With non-standard properties or not true beans</b><br />
+      These include true beans that have one or more properties defined by 
getter and setter methods or properties but property types include group [3b, 
4b, 5, 6b, 7] objects.<br />
+      This also includes classes that look like beans but aren't true beans. 
For example, classes that have getters but not setters, or classes without 
no-arg constructors.
+    </td>
+    <td>&nbsp;</td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>3c</td>
+    <td>
+      <b>Virtual beans</b><br />
+      These are unimplemented bean interfaces with properties of type [1, 2, 
3ac, 4a, 6a] objects.<br />
+      Parsers will automatically create interface proxies on top of BeanMap 
instances.
+    </td>
+    <td>&nbsp;</td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>3d</td>
+    <td>
+      <b>Read-only beans without setters</b><br />
+      The same as 3a but without property setters or constructor args.
+    </td>
+    <td>&nbsp;</td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+  <tr className="dark bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>4</td>
+    <td>
+      <b>Swapped objects</b><br />
+      These are objects that are not directly serializable but have 
[ObjectSwaps]({{API_DOCS}}/org/apache/juneau/swap/ObjectSwap.html) associated 
with them. The purpose of a POJO swap is to convert an object to another object 
that is easier to serialize and parse. For example, the 
[IsoLocalDateTime]({{API_DOCS}}/org/apache/juneau/swaps/TemporalDateSwap/IsoLocalDateTime.html)
 class can be used to serialize [Date]({{API_DOCS}}/java/util/Date.html) 
objects to ISO8601 strings, and parse them [...]
+    </td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>4a</td>
+    <td>
+      <b>2-way swapped to group [1, 2a, 3ac] objects</b><br />
+      For example, a swap that converts a `Date` to a `String`.
+    </td>
+    <td>
+      <ul className="normal">
+        <li>`java.util.Date`</li>
+        <li>`java.util.GregorianCalendar`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+  </tr>
+  <tr className="light bb">
+    <td style={{textAlign: 'center'}}>4b</td>
+    <td>
+      <b>1-way swapped to group [1, 2, 3] objects</b><br />
+      For example, a swap that converts an `Iterator` to a `List`.<br />
+      This would be one way, since you cannot reconstruct an `Iterator`.
+    </td>
+    <td>
+      <ul className="normal">
+        <li>`java.util.Iterator`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+  <tr className="dark bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>5</td>
+    <td>
+      <b>Readers and InputStreams</b><br />
+      Contents are serialized directly to the output stream or writer.<br />
+      Typically used for low-level language-specific replacement of POJOs 
using per-Media-Type POJO swaps.
+    </td>
+    <td>
+      <ul className="normal">
+        <li>`FileInputStream`</li>
+        <li>`StringReader`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+  <tr className="dark bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>6</td>
+    <td>
+      <b>Non-serializable objects with standard methods for converting to a 
serializable form</b>
+    </td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+  </tr>
+  <tr className="light bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>6a</td>
+    <td>
+      Classes with a method that converts it to a serializable form:
+      <ul>
+        <li>`public X swap(BeanSession);` where `X` is in groups [1, 2a, 
3ac].</li>
+        <li>`public String toString();` where the string is any meaningful 
data.</li>
+      </ul>
+      And a method that converts it back into the original object:
+      <ul>
+        <li>`public static T fromString(String);`</li>
+        <li>`public static T valueOf(String);`</li>
+        <li>`public static T parse(String);`</li>
+        <li>`public static T parseString(String);`</li>
+        <li>`public static T forName(String);`</li>
+        <li>`public static T forString(String);`</li>
+        <li>`public T(X);` where `X` is in groups [1, 2a, 3ac].</li>
+        <li>`public static T unswap(BeanSession,X);` where `X` is in groups 
[1, 2a, 3ac].</li>
+      </ul>
+    </td>
+    <td>
+      <ul className="normal">
+        <li>`java.lang.Class`</li>
+        <li>`java.sql.Time`</li>
+        <li>`java.sql.Timestamp`</li>
+        <li>`java.text.MessageFormat`</li>
+        <li>`java.text.NumberFormat`</li>
+        <li>`java.util.Date`</li>
+        <li>`java.util.UUID`</li>
+        <li>`java.util.logging.Level`</li>
+        <li>`javax.xml.bind.DatatypeConverter`</li>
+      </ul>
+    </td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+  </tr>
+  <tr className="light bb" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>6b</td>
+    <td>
+      Classes that only have a method to convert to a serializable form:
+      <ul>
+        <li>`public X swap(BeanSession);` where `X` is in groups [1, 2, 
3].</li>
+        <li>`public String toString();` where the string is any meaningful 
data.</li>
+      </ul>
+    </td>
+    <td>&nbsp;</td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+  <tr className="dark" style={{backgroundColor: 'lightyellow'}}>
+    <td style={{textAlign: 'center'}}>7</td>
+    <td>
+      <b>All other objects</b><br />
+      Anything that doesn't fall into one of the groups above are simply 
converted to `Strings` using the `toString()` method.
+    </td>
+    <td>&nbsp;</td>
+    <td style={{backgroundColor: 'lightgreen', textAlign: 
'center'}}><b>yes</b></td>
+    <td style={{backgroundColor: 'salmon', textAlign: 'center'}}><b>no</b></td>
+  </tr>
+</table>
+
+:::info
+Serializers are designed to work on tree-shaped POJO models.
+These are models where there are no referential loops (e.g. leaves with 
references to nodes, or nodes in one branch referencing nodes in another 
branch).
+There is a serializer setting `detectRecursions` to look for and handle these 
kinds of loops (by setting these references to `null`) but it is not enabled by 
default since it introduces a moderate performance penalty.
+:::
+
 ### POJOs convertible to/from Strings
 
 A separate category exists for POJOs that can be converted to and from Strings.
 These are used in places such as:
+
 - Serializing of POJOs to Strings in the REST client API when no serializers 
are registered.
+- Parsing of POJOs from Strings in the REST server API for "text/plain" 
requests where "text/plain" is not already mapped to an existing serializer.
 
-Parsing of POJOs from Strings in the REST server API for "text/plain" requests 
where "text/plain" is not already mapped to an existing serializer.
 As a general rule, all POJOs are converted to Strings using the `toString()` 
method.
 However, there is one exception:
+
 - [TimeZone]({{API_DOCS}}/java/util/TimeZone.html) - Uses 
[TimeZone#getID()]({{API_DOCS}}/java/util/TimeZone.html#getID())
 
 POJOs are convertible from Strings using any of the following (matched in the 
specified order):
+
 - Any of the following public static non-deprecated methods:
-- `create(String)`
-- `fromString(String)`
-- `fromValue(String)`
-- `valueOf(String)`
-- `parse(String)`
-- `parseString(String)`
-- `forName(String)`
-- `forString(String)`
+  - `create(String)`
+  - `fromString(String)`
+  - `fromValue(String)`
+  - `valueOf(String)`
+  - `parse(String)`
+  - `parseString(String)`
+  - `forName(String)`
+  - `forString(String)`
 - Has a public constructor that takes in a `String`.
 
 Exceptions exist for the following classes:
-- [TimeZone]({{API_DOCS}}/java/util/TimeZone.html) - Uses 
[TimeZone#getTimeZone(String)]({{API_DOCS}}/java/util/TimeZone.html#getTimeZone(String))
 
-[Locale]({{API_DOCS}}/java/util/Locale.html) - Uses 
[Locale#forLanguageTag(String)]({{API_DOCS}}/java/util/Locale.html#forLanguageTag(String))
 after replacing '_' with '-'.
-[Boolean]({{API_DOCS}}/java/lang/Boolean.html) - Blank and "null" are 
interpreted as null values.
+- [TimeZone]({{API_DOCS}}/java/util/TimeZone.html) - Uses 
[TimeZone#getTimeZone(String)]({{API_DOCS}}/java/util/TimeZone.html#getTimeZone(String))
+- [Locale]({{API_DOCS}}/java/util/Locale.html) - Uses 
[Locale#forLanguageTag(String)]({{API_DOCS}}/java/util/Locale.html#forLanguageTag(String))
 after replacing '_' with '-'.
+- [Boolean]({{API_DOCS}}/java/lang/Boolean.html) - Blank and "null" are 
interpreted as null values.
 - Primitives (except for `void.class`) - Uses the primitive wrapper classes 
for instantiating from Strings.
 
 ### POJOs convertible to/from other types
 
 POJOs are also converted to various other types in places such as the Open-API 
serializers and parsers.
 In this section, the type being converted to will be referred to as `X`.
+
 POJOs are considered convertible from X if it has any of the following 
(matched in the specified order):
+
 - Any any of the following public static non-deprecated methods:
-- `create(X)`
-- `from*(X)`
+  - `create(X)`
+  - `from*(X)`
 - Has a public constructor that takes in an `X`.
 - The X class has a public non-static no-arg non-deprecated method called 
`to*()`.
 
-POJOs are considered convertible from X if any of the reverse of above are 
true.
+POJOs are considered convertible from X if any of the reverse of above are 
true.
\ No newline at end of file
diff --git a/juneau-docs-poc/docs/topics/02.21.00.SimpleVariableLanguage.md 
b/juneau-docs-poc/docs/topics/02.21.00.SimpleVariableLanguage.md
index bb854cb36..36716020e 100644
--- a/juneau-docs-poc/docs/topics/02.21.00.SimpleVariableLanguage.md
+++ b/juneau-docs-poc/docs/topics/02.21.00.SimpleVariableLanguage.md
@@ -2,12 +2,15 @@
 title: "Simple Variable Language"
 ---
 
-The [svl]({{API_DOCS}}/org/apache/juneau/svl.html) packages defines an API for 
a language called "Simple Variable Language".
-In a nutshell, Simple Variable Language (or SVL) is text that contains 
variables of the form "$varName\{varKey\}".
+The [org.apache.juneau.svl]({{API_DOCS}}/org/apache/juneau/svl.html) packages 
defines an API for a language called "Simple Variable Language".
+
+In a nutshell, Simple Variable Language (or SVL) is text that contains 
variables of the form `$varName{varKey}`.
 It is used extensively in the Config, REST and Microservice APIs.
-Most variables can be recursively nested within the varKey (e.g.
-"$FOO\{$BAR\{xxx\},$BAZ\{xxx\}\}") and can return values that themselves 
contain more variables.
+
+Most variables can be recursively nested within the varKey (e.g. 
`$FOO{$BAR{xxx},$BAZ{xxx}}`) and can return values that themselves contain more 
variables.
+
 The [VarResolver]({{API_DOCS}}/org/apache/juneau/svl/VarResolver.html) class 
is used to resolve variables.
+
 The 
[VarResolver#DEFAULT]({{API_DOCS}}/org/apache/juneau/svl/VarResolver.html#DEFAULT)
 resolver is a reusable instance of this class configured with the following 
basic variables:
 - 
[SystemPropertiesVar]({{API_DOCS}}/org/apache/juneau/svl/vars/SystemPropertiesVar.html)
 - `$S\{key[,default]\}`
 - 
[EnvVariablesVar]({{API_DOCS}}/org/apache/juneau/svl/vars/EnvVariablesVar.html) 
- `$E\{key[,default]\}`
@@ -27,14 +30,12 @@ The following logic variables are also provided:
 
 :::tip Example
 
-
 ```java
 // Use the default variable resolver to resolve a string that contains
 // $S (system property) variables.
 String property = VarResolver.DEFAULT.resolve("The Java home directory is 
$S{java.home}");
 ```
 
-
 The following shows how variables can be arbitrarily nested...
 
 ```java
diff --git a/juneau-docs-poc/sidebars.ts b/juneau-docs-poc/sidebars.ts
index fe0c17535..6ef51ca08 100644
--- a/juneau-docs-poc/sidebars.ts
+++ b/juneau-docs-poc/sidebars.ts
@@ -344,16 +344,9 @@ const sidebars: SidebarsConfig = {
           label: '2.19. Jackson Comparison',
         },
         {
-          type: 'category',
-          label: '2.20. Simple Variable Language',
-          collapsed: true,
-          items: [
-            {
-              type: 'doc',
-              id: 'topics/02.20.00.PojoCategories',
-              label: '2.20. POJO Categories',
-            },
-          ],
+          type: 'doc',
+          id: 'topics/02.20.00.PojoCategories',
+          label: '2.20. POJO Categories',
         },
         {
           type: 'category',
@@ -393,16 +386,9 @@ const sidebars: SidebarsConfig = {
           label: '2.22. Encoders',
         },
         {
-          type: 'category',
-          label: '2.23. JSON Details',
-          collapsed: true,
-          items: [
-            {
-              type: 'doc',
-              id: 'topics/02.23.00.ObjectTools',
-              label: '2.23. Object Tools',
-            },
-          ],
+          type: 'doc',
+          id: 'topics/02.23.00.ObjectTools',
+          label: '2.23. Object Tools',
         },
         {
           type: 'category',
@@ -442,114 +428,54 @@ const sidebars: SidebarsConfig = {
           ],
         },
         {
-          type: 'category',
-          label: '2.25. XML Details',
-          collapsed: true,
-          items: [
-            {
-              type: 'doc',
-              id: 'topics/02.25.00.JsonSchemaDetails',
-              label: '2.25. JSON Schema Details',
-            },
-          ],
+          type: 'doc',
+          id: 'topics/02.25.00.JsonSchemaDetails',
+          label: '2.25. JSON Schema Details',
         },
         {
           type: 'category',
-          label: '2.26. HTML Details',
+          label: '2.26. XML Details',
           collapsed: true,
           items: [
             {
-
-              type: 'category',
-
+              type: 'doc',
+              id: 'topics/02.26.00.XmlDetails',
               label: '2.26. XML Details',
-
-              collapsed: true,
-
-              items: [
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.00.XmlDetails',
-
-                  label: '2.26. XML Details',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.01.XmlMethodology',
-
-                  label: '2.26.1. XML Methodology',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.02.XmlSerializers',
-
-                  label: '2.26.2. XML Serializers',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.03.XmlParsers',
-
-                  label: '2.26.3. XML Parsers',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.04.XmlBeanTypeNameAnnotation',
-
-                  label: '2.26.4. @XmlBeanTypeName Annotation',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.05.XmlChildNameAnnotation',
-
-                  label: '2.26.5. @XmlChildName Annotation',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.06.XmlFormatAnnotation',
-
-                  label: '2.26.6. @XmlFormat Annotation',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.26.07.XmlNamespaces',
-
-                  label: '2.26.7. XML Namespaces',
-
-                },
-
-              ],
-
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.01.XmlMethodology',
+              label: '2.26.1. XML Methodology',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.02.XmlSerializers',
+              label: '2.26.2. XML Serializers',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.03.XmlParsers',
+              label: '2.26.3. XML Parsers',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.04.XmlBeanTypeNameAnnotation',
+              label: '2.26.4. @XmlBeanTypeName Annotation',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.05.XmlChildNameAnnotation',
+              label: '2.26.5. @XmlChildName Annotation',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.06.XmlFormatAnnotation',
+              label: '2.26.6. @XmlFormat Annotation',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.26.07.XmlNamespaces',
+              label: '2.26.7. XML Namespaces',
             },
           ],
         },
@@ -657,249 +583,117 @@ const sidebars: SidebarsConfig = {
 
         },
         {
-          type: 'category',
-          label: '2.28. UON Details',
-          collapsed: true,
-          items: [
-            {
-              type: 'doc',
-              id: 'topics/02.28.00.HtmlSchema',
-              label: '2.28. HTML Schema',
-            },
-          ],
+          type: 'doc',
+          id: 'topics/02.28.00.HtmlSchema',
+          label: '2.28. HTML Schema',
         },
         {
           type: 'category',
-          label: '2.29. URL-Encoding Details',
+          label: '2.29. UON Details',
           collapsed: true,
           items: [
             {
-
-              type: 'category',
-
+              type: 'doc',
+              id: 'topics/02.29.00.UonDetails',
               label: '2.29. UON Details',
-
-              collapsed: true,
-
-              items: [
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.29.00.UonDetails',
-
-                  label: '2.29. UON Details',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.29.01.UonMethodology',
-
-                  label: '2.29.1. UON Methodology',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.29.02.UonSerializers',
-
-                  label: '2.29.2. UON Serializers',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.29.03.UonParsers',
-
-                  label: '2.29.3. UON Parsers',
-
-                },
-
-              ],
-
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.29.01.UonMethodology',
+              label: '2.29.1. UON Methodology',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.29.02.UonSerializers',
+              label: '2.29.2. UON Serializers',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.29.03.UonParsers',
+              label: '2.29.3. UON Parsers',
             },
           ],
         },
         {
           type: 'category',
-          label: '2.30. MessagePack Details',
+          label: '2.30. URL-Encoding Details',
           collapsed: true,
           items: [
             {
-
-              type: 'category',
-
+              type: 'doc',
+              id: 'topics/02.30.00.UrlEncodingDetails',
               label: '2.30. URL-Encoding Details',
-
-              collapsed: true,
-
-              items: [
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.30.00.UrlEncodingDetails',
-
-                  label: '2.30. URL-Encoding Details',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.30.01.UrlEncMethodology',
-
-                  label: '2.30.1. URL-Encoding Methodology',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.30.02.UrlEncSerializers',
-
-                  label: '2.30.2. URL-Encoding Serializers',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.30.03.UrlEncParsers',
-
-                  label: '2.30.3. URL-Encoding Parsers',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.30.04.UrlEncodingAnnotation',
-
-                  label: '2.30.4. @UrlEncoding Annotation',
-
-                },
-
-              ],
-
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.30.01.UrlEncMethodology',
+              label: '2.30.1. URL-Encoding Methodology',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.30.02.UrlEncSerializers',
+              label: '2.30.2. URL-Encoding Serializers',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.30.03.UrlEncParsers',
+              label: '2.30.3. URL-Encoding Parsers',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.30.04.UrlEncodingAnnotation',
+              label: '2.30.4. @UrlEncoding Annotation',
             },
           ],
         },
         {
           type: 'category',
-          label: '2.31. OpenAPI Details',
+          label: '2.31. MessagePack Details',
           collapsed: true,
           items: [
             {
-
-              type: 'category',
-
+              type: 'doc',
+              id: 'topics/02.31.00.MsgPackDetails',
               label: '2.31. MessagePack Details',
-
-              collapsed: true,
-
-              items: [
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.31.00.MsgPackDetails',
-
-                  label: '2.31. MessagePack Details',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.31.01.MsgPackSerializers',
-
-                  label: '2.31.1. MessagePack Serializers',
-
-                },
-
-                {
-
-                  type: 'doc',
-
-                  id: 'topics/02.31.02.MsgPackParsers',
-
-                  label: '2.31.2. MessagePack Parsers',
-
-                },
-
-              ],
-
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.31.01.MsgPackSerializers',
+              label: '2.31.1. MessagePack Serializers',
+            },
+            {
+              type: 'doc',
+              id: 'topics/02.31.02.MsgPackParsers',
+              label: '2.31.2. MessagePack Parsers',
             },
           ],
         },
         {
-
           type: 'category',
-
           label: '2.32. OpenAPI Details',
-
           collapsed: true,
-
           items: [
-
             {
-
               type: 'doc',
-
               id: 'topics/02.32.00.OpenApiDetails',
-
               label: '2.32. OpenAPI Details',
-
             },
-
             {
-
               type: 'doc',
-
               id: 'topics/02.32.01.OpenApiMethodology',
-
               label: '2.32.1. OpenAPI Methodology',
-
             },
-
             {
-
               type: 'doc',
-
               id: 'topics/02.32.02.OpenApiSerializers',
-
               label: '2.32.2. OpenAPI Serializers',
-
             },
-
             {
-
               type: 'doc',
-
               id: 'topics/02.32.03.OpenApiParsers',
-
               label: '2.32.3. OpenAPI Parsers',
-
             },
-
           ],
-
         },
         {
           type: 'doc',

Reply via email to