update appendix E

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/spec/src/main/asciidoc/appE-external_binding.adoc b/spec/src/main/asciidoc/appE-external_binding.adoc
index 0879c22..b48ffc5 100644
--- a/spec/src/main/asciidoc/appE-external_binding.adoc
+++ b/spec/src/main/asciidoc/appE-external_binding.adoc
@@ -5,104 +5,85 @@
 [appendix]
 == External Binding Declaration
 
-=== [[a4821]]Example
+=== Example
 
-=== Example: Consider the following schema and external binding file:
+*_Example:_* Consider the following schema and external binding file: +
 
-Source Schema: _A.xsd:_
+Source Schema: `A.xsd`:
 
-<xs:schema
-xmlns:xs="http://www.w3.org/2001/XMLSchema"
-
- xmlns:ens="http://example.com/ns"
-
- targetNamespace="http://example.com/ns"> +
-<xs:complexType name="aType">
-
- <xs:sequence>
-
- <xs:element name="foo" type="xs:int"/>
-
- </xs:sequence>
-
- <xs:attribute name="bar" type="xs:int"/>
-
- </xs:complexType>
-
- <xs:element name="root" type="ens:aType"/>
-
+[source,xml]
+----
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:ens="http://example.com/ns"
+           targetNamespace="http://example.com/ns">
+  <xs:complexType name="aType">
+    <xs:sequence>
+      <xs:element name="foo" type="xs:int"/>
+    </xs:sequence>
+    <xs:attribute name="bar" type="xs:int"/>
+  </xs:complexType>
+  <xs:element name="root" type="ens:aType"/>
 </xs:schema>
+----
 
 External binding declarations file:
 
-<jaxb:bindings
-xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
-
- version="1.0">
-
- <jaxb:bindings schemaLocation=” _A.xsd_ ”>
-
- <jaxb:bindings
-node="//xs:complexType[@name=’aType’]”>
-
- <jaxb:class name="customNameType"/>
-
- <jaxb:bindings
-node=”.//xs:element[@name=’foo’]”> +
-<jaxb:property name="customFoo"/>
-
- </jaxb:bindings>
-
- <jaxb:bindings
-node=”./xs:attribute[@name=’bar’]”> +
-<jaxb:property name="customBar"/> +
+[source,xml]
+----
+<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+               xmlns:xs="http://www.w3.org/2001/XMLSchema"
+               version="3.0">
+  <jaxb:bindings schemaLocation="A.xsd">
+    <jaxb:bindings node="//xs:complexType[@name=’aType’]">
+      <jaxb:class name="customNameType"/>
+      <jaxb:bindings node=".//xs:element[@name=’foo’]">
+        <jaxb:property name="customFoo"/>
+      </jaxb:bindings>
+      <jaxb:bindings node="./xs:attribute[@name=’bar’]">
+        <jaxb:property name="customBar"/>
+      </jaxb:bindings>
+     </jaxb:bindings>
+   </jaxb:bindings>
 </jaxb:bindings>
-
- </jaxb:bindings>
-
- </jaxb:bindings>
-
-</jaxb:bindings>
+----
 
 Conceptually, the combination of the source
 schema and external binding file above are the equivalent of the
 following inline annotated schema.
 
-<xs:schema
-xmlns:xs="http://www.w3.org/2001/XMLSchema" +
-xmlns:ens="http://example.com/ns" +
-targetNamespace="http://example.com/ns"
-
-
-xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" +
-jaxb:version="1.0"> +
-<xs:complexType name="aType"> +
-_<xs:annotation> +
-<xs:appinfo> +
-_ _<jaxb:class name="customNameType"/> +
-_ _</xs:appinfo> +
-</xs:annotation> +
-_ <xs:sequence> +
-<xs:element name="foo" type="xs:int"> +
-_<xs:annotation> +
-<xs:appinfo> +
-_ _<jaxb:property name="customFoo"/> +
-_ _</xs:appinfo> +
-</xs:annotation> +
-_ </xs:element> +
-</xs:sequence> +
-<xs:attribute name="bar" type="xs:int"> +
-_<xs:annotation> +
-<xs:appinfo> +
-_ _<jaxb:property name="customBar"/> +
-_ _</xs:appinfo> +
-</xs:annotation> +
-_ </xs:attribute> +
-</xs:complexType> +
-<xs:element name="root" type="ens:aType"/> +
+[source,xml]
+----
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:ens="http://example.com/ns"
+           targetNamespace="http://example.com/ns"
+           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+           jaxb:version="3.0">
+  <xs:complexType name="aType">
+    <xs:annotation>
+      <xs:appinfo>
+        <jaxb:class name="customNameType"/>
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="foo" type="xs:int">
+        <xs:annotation>
+          <xs:appinfo>
+            <jaxb:property name="customFoo"/>
+          </xs:appinfo>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="bar" type="xs:int">
+      <xs:annotation>
+        <xs:appinfo>
+          <jaxb:property name="customBar"/>
+        </xs:appinfo>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:element name="root" type="ens:aType"/>
 </xs:schema>
+----
 
 === Transformation
 
@@ -117,69 +98,71 @@
 
 The transformation is applied as follows:
 
-. Gather all the top-most _<jaxb:bindings>_
+. Gather all the top-most `<jaxb:bindings>`
 elements from all the schema documents and all the external binding
-files that participate in this process. _Top-most_ _<jaxb:bindings>_ are
-those _<jaxb:bindings>_ elements that are either a root element in a
-document or whose parent is an _<xs:appinfo>_ element. We will refer to
+files that participate in this process. _Top-most_ `<jaxb:bindings>` are
+those `<jaxb:bindings>` elements that are either a root element in a
+document or whose parent is an `<xs:appinfo>` element. We will refer to
 these trees as “external binding forest.”
 . Collect all the namespaces used in the
 elements inside the external binding forest, except the taxi namespace,
-_"http://java.sun.com/xml/ns/jaxb”,_ and the no namespace. Allocate an
+`"http://java.sun.com/xml/ns/jaxb"`, and the no namespace. Allocate an
 unique prefix for each of them and declare the namespace binding at all
-the root _<xs:schema>_ elements of each schema documents. +
-Then add a _jaxb:extensionBindingPrefix_ attribute to each _<xs:schema>_
-element with all those allocated prefixes. If an _<xs:schema>_ element
+the root `<xs:schema>` elements of each schema documents. +
+Then add a `jaxb:extensionBindingPrefix` attribute to each `<xs:schema>`
+element with all those allocated prefixes. If an`<xs:schema>` element
 already carries this attribute, prefixes are just appended to the
 existing attributes. +
  +
 Note: The net effect is that all “foreign” namespaces used in the
 external binding forest will be automatically be considered as extension
 customization declaration namespaces.
-. For each _<jaxb:bindings>_ element, we
+. For each `<jaxb:bindings>` element, we
 determine the “target element” that the binding declaration should be
 associated with. This process proceeds in a top-down fashion as follows:
-. Let _p_ be the target element of the parent
-_<jaxb:bindings>_ . If it is the top most _<jaxb:bindings>_ , then let
-_p_ be the < _jaxb:bindings>_ element itself.
-. Identify the “target element” using
-_<jaxb:bindings>_ attributes. +
-(i) If the _<jaxb:bindings>_ has a _@schemaLocation_ , the value of the
++
+--
+.. Let `p` be the target element of the parent
+`<jaxb:bindings>`. If it is the top most `<jaxb:bindings>`, then let
+`p` be the `<jaxb:bindings>` element itself.
+.. Identify the “target element” using `<jaxb:bindings>` attributes.
+... If the `<jaxb:bindings>` has a `@schemaLocation`, the value of the
 attribute should be taken as an URI and be absolutized with the base URI
-of the _<jaxb:bindings>_ element. Then the target element will be the
+of the `<jaxb:bindings>` element. Then the target element will be the
 root node of the schema document identified by the absolutized URI. If
 there’s no such schema document in the current input, it is an error.
 Note: the root node of the schema document is not the document element.
 
-(ii) If the _<jaxb:bindings>_ has _@node_ ,
+... If the `<jaxb:bindings>` has `@node`,
 the value of the attribute should be evaluated as an XPath 1.0
 expression. The context node in this evaluation should be _p_ as we
 computed in the previous step. It is an error if this evaluation results
 in something other than a node set that contains exactly one element.
 Then the target element will be this element.
 
-(iii) if the _<jaxb:bindings>_ has neither
-_@schemaLocation_ nor _@node_ , then the target element will be _p_ as
-we computed in the previous step. Note: _<jaxb:bindings>_ elements can’t
-have both _@schemaLocation_ and _@node_ at the same time.
-
+... If the `<jaxb:bindings>` has neither
+`@schemaLocation` nor `@node`, then the target element will be `p` as
+we computed in the previous step. Note: `<jaxb:bindings>` elements can’t
+have both `@schemaLocation` and `@node` at the same time.
+--
++
 We define the target element of a binding
-declaration to be the target element of its parent _<jaxb:bindings>_
-element. The only exception to this is _<jaxb:globalBindings>_ binding
+declaration to be the target element of its parent `<jaxb:bindings>`
+element. The only exception to this is `<jaxb:globalBindings>` binding
 declaraiton, in which case the target element will be the document
 element of any one of the schema documents being compiled (such choice
-is undeterministic, but the semantics of _<jaxb:globalBindings>_ is not
+is undeterministic, but the semantics of `<jaxb:globalBindings>` is not
 affected by this choice, so the end result will be the same.) It is an
 error if a target element of a binding declaration doesn’t belong to the
 _"http://wwww.w3.org/2001/XMLSchema"_ namespace.
 
 . Next, for each target element of binding
-declarations, if it doesn’t have any _<xs:annotation> <xs:appinfo>_ in
+declarations, if it doesn’t have any `<xs:annotation> <xs:appinfo>` in
 its children, one will be created and added as the first child of the
-target. +
+target.
  +
 After that, we move each binding declaration under the target node of
-its parent _<jaxb:bindings>_ . Consider the first _<xs:appinfo>_ child
+its parent `<jaxb:bindings>`. Consider the first `<xs:appinfo>` child
 of the target element. The binding declaration element will be moved
-under this _<xs:appinfo>_ element.
+under this `<xs:appinfo>` element.