diff --git a/ui/org.eclipse.pde.bnd.ui/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.bnd.ui/META-INF/MANIFEST.MF
index 6ea251e203e..fdf4d11ce80 100644
--- a/ui/org.eclipse.pde.bnd.ui/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.pde.bnd.ui/META-INF/MANIFEST.MF
@@ -11,7 +11,9 @@ Import-Package: aQute.bnd.build;version="4.5.0",
aQute.bnd.exceptions;version="3.0.0",
aQute.bnd.header;version="2.6.0",
aQute.bnd.osgi,
- aQute.bnd.result;version="2.0.0"
+ aQute.bnd.result;version="2.0.0",
+ jakarta.xml.bind;version="4.0.1",
+ jakarta.xml.bind.annotation;version="4.0.1"
Require-Bundle: org.eclipse.jdt.ui,
org.eclipse.jdt.core,
org.eclipse.core.resources,
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/ObjectFactory.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/ObjectFactory.java
new file mode 100644
index 00000000000..c8de4c96454
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/ObjectFactory.java
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import javax.xml.namespace.QName;
+
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.annotation.XmlElementDecl;
+import jakarta.xml.bind.annotation.XmlRegistry;
+
+/**
+ * This object contains factory methods for each Java content interface and Java
+ * element interface generated in the org.osgi.xmlns.metatype.v1_4 package.
+ *
+ * An ObjectFactory allows you to programmatically construct new instances of
+ * the Java representation for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces and classes representing the
+ * binding of schema type definitions, element declarations and model groups.
+ * Factory methods for each of these are provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _MetaData_QNAME = new QName("http://www.osgi.org/xmlns/metatype/v1.4.0", "MetaData");
+ private final static QName _TattributeValue_QNAME = new QName("", "Value");
+ private final static QName _TmetadataOCD_QNAME = new QName("", "OCD");
+ private final static QName _TmetadataDesignate_QNAME = new QName("", "Designate");
+ private final static QName _TadOption_QNAME = new QName("", "Option");
+ private final static QName _TocdAD_QNAME = new QName("", "AD");
+ private final static QName _TocdIcon_QNAME = new QName("", "Icon");
+ private final static QName _TobjectAttribute_QNAME = new QName("", "Attribute");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.osgi.xmlns.metatype.v1_4
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link Tmetadata }
+ *
+ */
+ public Tmetadata createTmetadata() {
+ return new Tmetadata();
+ }
+
+ /**
+ * Create an instance of {@link Tdesignate }
+ *
+ */
+ public Tdesignate createTdesignate() {
+ return new Tdesignate();
+ }
+
+ /**
+ * Create an instance of {@link Tad }
+ *
+ */
+ public Tad createTad() {
+ return new Tad();
+ }
+
+ /**
+ * Create an instance of {@link Tattribute }
+ *
+ */
+ public Tattribute createTattribute() {
+ return new Tattribute();
+ }
+
+ /**
+ * Create an instance of {@link Tocd }
+ *
+ */
+ public Tocd createTocd() {
+ return new Tocd();
+ }
+
+ /**
+ * Create an instance of {@link Toption }
+ *
+ */
+ public Toption createToption() {
+ return new Toption();
+ }
+
+ /**
+ * Create an instance of {@link Ticon }
+ *
+ */
+ public Ticon createTicon() {
+ return new Ticon();
+ }
+
+ /**
+ * Create an instance of {@link Tobject }
+ *
+ */
+ public Tobject createTobject() {
+ return new Tobject();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Tmetadata }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.osgi.org/xmlns/metatype/v1.4.0", name = "MetaData")
+ public JAXBElement createMetaData(Tmetadata value) {
+ return new JAXBElement(_MetaData_QNAME, Tmetadata.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "Value", scope = Tattribute.class)
+ public JAXBElement createTattributeValue(String value) {
+ return new JAXBElement(_TattributeValue_QNAME, String.class, Tattribute.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Tocd }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "OCD", scope = Tmetadata.class)
+ public JAXBElement createTmetadataOCD(Tocd value) {
+ return new JAXBElement(_TmetadataOCD_QNAME, Tocd.class, Tmetadata.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Tdesignate }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "Designate", scope = Tmetadata.class)
+ public JAXBElement createTmetadataDesignate(Tdesignate value) {
+ return new JAXBElement(_TmetadataDesignate_QNAME, Tdesignate.class, Tmetadata.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Toption }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "Option", scope = Tad.class)
+ public JAXBElement createTadOption(Toption value) {
+ return new JAXBElement(_TadOption_QNAME, Toption.class, Tad.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Tad }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "AD", scope = Tocd.class)
+ public JAXBElement createTocdAD(Tad value) {
+ return new JAXBElement(_TocdAD_QNAME, Tad.class, Tocd.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Ticon }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "Icon", scope = Tocd.class)
+ public JAXBElement createTocdIcon(Ticon value) {
+ return new JAXBElement(_TocdIcon_QNAME, Ticon.class, Tocd.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Tattribute }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "Attribute", scope = Tobject.class)
+ public JAXBElement createTobjectAttribute(Tattribute value) {
+ return new JAXBElement(_TobjectAttribute_QNAME, Tattribute.class, Tobject.class, value);
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tad.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tad.java
new file mode 100644
index 00000000000..539f9b9c4a8
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tad.java
@@ -0,0 +1,368 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElementRef;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Tad complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Tad">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="Option" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Toption"/>
+ * <any processContents='lax' namespace='##other'/>
+ * </choice>
+ * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="type" use="required" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Tscalar" />
+ * <attribute name="cardinality" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />
+ * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="default" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="required" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Tad", propOrder = {
+ "optionOrAny"
+})
+public class Tad {
+
+ @XmlElementRef(name = "Option", type = JAXBElement.class, required = false)
+ @XmlAnyElement(lax = true)
+ protected List optionOrAny;
+ @XmlAttribute(name = "name")
+ protected String name;
+ @XmlAttribute(name = "description")
+ protected String description;
+ @XmlAttribute(name = "id", required = true)
+ protected String id;
+ @XmlAttribute(name = "type", required = true)
+ protected Tscalar type;
+ @XmlAttribute(name = "cardinality")
+ protected Integer cardinality;
+ @XmlAttribute(name = "min")
+ protected String min;
+ @XmlAttribute(name = "max")
+ protected String max;
+ @XmlAttribute(name = "default")
+ protected String _default;
+ @XmlAttribute(name = "required")
+ protected Boolean required;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the optionOrAny property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the optionOrAny property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getOptionOrAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link Toption }{@code >}
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getOptionOrAny() {
+ if (optionOrAny == null) {
+ optionOrAny = new ArrayList();
+ }
+ return this.optionOrAny;
+ }
+
+ /**
+ * Ruft den Wert der name-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Legt den Wert der name-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Ruft den Wert der description-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Legt den Wert der description-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Ruft den Wert der id-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Legt den Wert der id-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Ruft den Wert der type-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link Tscalar }
+ *
+ */
+ public Tscalar getType() {
+ return type;
+ }
+
+ /**
+ * Legt den Wert der type-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link Tscalar }
+ *
+ */
+ public void setType(Tscalar value) {
+ this.type = value;
+ }
+
+ /**
+ * Ruft den Wert der cardinality-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getCardinality() {
+ if (cardinality == null) {
+ return 0;
+ } else {
+ return cardinality;
+ }
+ }
+
+ /**
+ * Legt den Wert der cardinality-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setCardinality(Integer value) {
+ this.cardinality = value;
+ }
+
+ /**
+ * Ruft den Wert der min-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMin() {
+ return min;
+ }
+
+ /**
+ * Legt den Wert der min-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMin(String value) {
+ this.min = value;
+ }
+
+ /**
+ * Ruft den Wert der max-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMax() {
+ return max;
+ }
+
+ /**
+ * Legt den Wert der max-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMax(String value) {
+ this.max = value;
+ }
+
+ /**
+ * Ruft den Wert der default-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDefault() {
+ return _default;
+ }
+
+ /**
+ * Legt den Wert der default-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDefault(String value) {
+ this._default = value;
+ }
+
+ /**
+ * Ruft den Wert der required-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isRequired() {
+ if (required == null) {
+ return true;
+ } else {
+ return required;
+ }
+ }
+
+ /**
+ * Legt den Wert der required-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setRequired(Boolean value) {
+ this.required = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tattribute.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tattribute.java
new file mode 100644
index 00000000000..3e8e5f47cc1
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tattribute.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElementRef;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Tattribute complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Tattribute">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="Value" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <any processContents='lax' namespace='##other'/>
+ * </choice>
+ * <attribute name="adref" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="content" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Tattribute", propOrder = {
+ "valueOrAny"
+})
+public class Tattribute {
+
+ @XmlElementRef(name = "Value", type = JAXBElement.class, required = false)
+ @XmlAnyElement(lax = true)
+ protected List valueOrAny;
+ @XmlAttribute(name = "adref", required = true)
+ protected String adref;
+ @XmlAttribute(name = "content")
+ protected String content;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the valueOrAny property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the valueOrAny property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getValueOrAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getValueOrAny() {
+ if (valueOrAny == null) {
+ valueOrAny = new ArrayList();
+ }
+ return this.valueOrAny;
+ }
+
+ /**
+ * Ruft den Wert der adref-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAdref() {
+ return adref;
+ }
+
+ /**
+ * Legt den Wert der adref-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAdref(String value) {
+ this.adref = value;
+ }
+
+ /**
+ * Ruft den Wert der content-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getContent() {
+ return content;
+ }
+
+ /**
+ * Legt den Wert der content-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setContent(String value) {
+ this.content = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tdesignate.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tdesignate.java
new file mode 100644
index 00000000000..8d8475ec8fe
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tdesignate.java
@@ -0,0 +1,284 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Tdesignate complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Tdesignate">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Object" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Tobject"/>
+ * <any processContents='lax' maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="pid" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="factoryPid" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="bundle" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="optional" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="merge" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Tdesignate", propOrder = {
+ "object",
+ "any"
+})
+public class Tdesignate {
+
+ @XmlElement(name = "Object", required = true)
+ protected Tobject object;
+ @XmlAnyElement(lax = true)
+ protected List any;
+ @XmlAttribute(name = "pid")
+ protected String pid;
+ @XmlAttribute(name = "factoryPid")
+ protected String factoryPid;
+ @XmlAttribute(name = "bundle")
+ protected String bundle;
+ @XmlAttribute(name = "optional")
+ protected Boolean optional;
+ @XmlAttribute(name = "merge")
+ protected Boolean merge;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Ruft den Wert der object-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link Tobject }
+ *
+ */
+ public Tobject getObject() {
+ return object;
+ }
+
+ /**
+ * Legt den Wert der object-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link Tobject }
+ *
+ */
+ public void setObject(Tobject value) {
+ this.object = value;
+ }
+
+ /**
+ * Gets the value of the any property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the any property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getAny() {
+ if (any == null) {
+ any = new ArrayList();
+ }
+ return this.any;
+ }
+
+ /**
+ * Ruft den Wert der pid-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPid() {
+ return pid;
+ }
+
+ /**
+ * Legt den Wert der pid-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPid(String value) {
+ this.pid = value;
+ }
+
+ /**
+ * Ruft den Wert der factoryPid-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFactoryPid() {
+ return factoryPid;
+ }
+
+ /**
+ * Legt den Wert der factoryPid-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFactoryPid(String value) {
+ this.factoryPid = value;
+ }
+
+ /**
+ * Ruft den Wert der bundle-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getBundle() {
+ return bundle;
+ }
+
+ /**
+ * Legt den Wert der bundle-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setBundle(String value) {
+ this.bundle = value;
+ }
+
+ /**
+ * Ruft den Wert der optional-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isOptional() {
+ if (optional == null) {
+ return false;
+ } else {
+ return optional;
+ }
+ }
+
+ /**
+ * Legt den Wert der optional-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setOptional(Boolean value) {
+ this.optional = value;
+ }
+
+ /**
+ * Ruft den Wert der merge-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isMerge() {
+ if (merge == null) {
+ return false;
+ } else {
+ return merge;
+ }
+ }
+
+ /**
+ * Legt den Wert der merge-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setMerge(Boolean value) {
+ this.merge = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Ticon.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Ticon.java
new file mode 100644
index 00000000000..87e7b23aab6
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Ticon.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlSchemaType;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Ticon complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Ticon">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any processContents='lax' maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="resource" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="size" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Ticon", propOrder = {
+ "any"
+})
+public class Ticon {
+
+ @XmlAnyElement(lax = true)
+ protected List any;
+ @XmlAttribute(name = "resource", required = true)
+ protected String resource;
+ @XmlAttribute(name = "size", required = true)
+ @XmlSchemaType(name = "positiveInteger")
+ protected BigInteger size;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the any property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the any property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getAny() {
+ if (any == null) {
+ any = new ArrayList();
+ }
+ return this.any;
+ }
+
+ /**
+ * Ruft den Wert der resource-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getResource() {
+ return resource;
+ }
+
+ /**
+ * Legt den Wert der resource-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setResource(String value) {
+ this.resource = value;
+ }
+
+ /**
+ * Ruft den Wert der size-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getSize() {
+ return size;
+ }
+
+ /**
+ * Legt den Wert der size-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setSize(BigInteger value) {
+ this.size = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tmetadata.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tmetadata.java
new file mode 100644
index 00000000000..421834c774a
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tmetadata.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElementRef;
+import jakarta.xml.bind.annotation.XmlElementRefs;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Tmetadata complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Tmetadata">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="OCD" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Tocd"/>
+ * <element name="Designate" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Tdesignate"/>
+ * <any processContents='lax' namespace='##other'/>
+ * </choice>
+ * <attribute name="localization" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Tmetadata", propOrder = {
+ "ocdOrDesignateOrAny"
+})
+public class Tmetadata {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "Designate", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "OCD", type = JAXBElement.class, required = false)
+ })
+ @XmlAnyElement(lax = true)
+ protected List ocdOrDesignateOrAny;
+ @XmlAttribute(name = "localization")
+ protected String localization;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the ocdOrDesignateOrAny property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the ocdOrDesignateOrAny property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getOCDOrDesignateOrAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link Tdesignate }{@code >}
+ * {@link JAXBElement }{@code <}{@link Tocd }{@code >}
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getOCDOrDesignateOrAny() {
+ if (ocdOrDesignateOrAny == null) {
+ ocdOrDesignateOrAny = new ArrayList();
+ }
+ return this.ocdOrDesignateOrAny;
+ }
+
+ /**
+ * Ruft den Wert der localization-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLocalization() {
+ return localization;
+ }
+
+ /**
+ * Legt den Wert der localization-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLocalization(String value) {
+ this.localization = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tobject.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tobject.java
new file mode 100644
index 00000000000..6c7d27d87f9
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tobject.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElementRef;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Tobject complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Tobject">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="Attribute" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Tattribute"/>
+ * <any processContents='lax' namespace='##other'/>
+ * </choice>
+ * <attribute name="ocdref" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Tobject", propOrder = {
+ "attributeOrAny"
+})
+public class Tobject {
+
+ @XmlElementRef(name = "Attribute", type = JAXBElement.class, required = false)
+ @XmlAnyElement(lax = true)
+ protected List attributeOrAny;
+ @XmlAttribute(name = "ocdref", required = true)
+ protected String ocdref;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the attributeOrAny property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the attributeOrAny property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getAttributeOrAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link Tattribute }{@code >}
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getAttributeOrAny() {
+ if (attributeOrAny == null) {
+ attributeOrAny = new ArrayList();
+ }
+ return this.attributeOrAny;
+ }
+
+ /**
+ * Ruft den Wert der ocdref-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOcdref() {
+ return ocdref;
+ }
+
+ /**
+ * Legt den Wert der ocdref-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOcdref(String value) {
+ this.ocdref = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tocd.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tocd.java
new file mode 100644
index 00000000000..a3b594ddcf5
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tocd.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElementRef;
+import jakarta.xml.bind.annotation.XmlElementRefs;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Tocd complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Tocd">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="AD" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Tad"/>
+ * <element name="Icon" type="{http://www.osgi.org/xmlns/metatype/v1.4.0}Ticon"/>
+ * <any processContents='lax' namespace='##other'/>
+ * </choice>
+ * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Tocd", propOrder = {
+ "adOrIconOrAny"
+})
+public class Tocd {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "Icon", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "AD", type = JAXBElement.class, required = false)
+ })
+ @XmlAnyElement(lax = true)
+ protected List adOrIconOrAny;
+ @XmlAttribute(name = "name", required = true)
+ protected String name;
+ @XmlAttribute(name = "description")
+ protected String description;
+ @XmlAttribute(name = "id", required = true)
+ protected String id;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the adOrIconOrAny property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the adOrIconOrAny property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getADOrIconOrAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link JAXBElement }{@code <}{@link Ticon }{@code >}
+ * {@link JAXBElement }{@code <}{@link Tad }{@code >}
+ * {@link Object }
+ *
+ *
+ */
+ public List getADOrIconOrAny() {
+ if (adOrIconOrAny == null) {
+ adOrIconOrAny = new ArrayList();
+ }
+ return this.adOrIconOrAny;
+ }
+
+ /**
+ * Ruft den Wert der name-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Legt den Wert der name-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Ruft den Wert der description-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Legt den Wert der description-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Ruft den Wert der id-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Legt den Wert der id-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Toption.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Toption.java
new file mode 100644
index 00000000000..6cd8d6c00e3
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Toption.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyAttribute;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlType;
+
+/**
+ * Java-Klasse für Toption complex type.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <complexType name="Toption">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any processContents='lax' maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="label" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <anyAttribute processContents='lax'/>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Toption", propOrder = {
+ "any"
+})
+public class Toption {
+
+ @XmlAnyElement(lax = true)
+ protected List any;
+ @XmlAttribute(name = "label", required = true)
+ protected String label;
+ @XmlAttribute(name = "value", required = true)
+ protected String value;
+ @XmlAnyAttribute
+ private Map otherAttributes = new HashMap();
+
+ /**
+ * Gets the value of the any property.
+ *
+ *
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a set
method for the any property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ * getAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List getAny() {
+ if (any == null) {
+ any = new ArrayList();
+ }
+ return this.any;
+ }
+
+ /**
+ * Ruft den Wert der label-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLabel() {
+ return label;
+ }
+
+ /**
+ * Legt den Wert der label-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLabel(String value) {
+ this.label = value;
+ }
+
+ /**
+ * Ruft den Wert der value-Eigenschaft ab.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Legt den Wert der value-Eigenschaft fest.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ *
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tscalar.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tscalar.java
new file mode 100644
index 00000000000..29d41cdd9a2
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/Tscalar.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;
+
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlType;
+
+
+/**
+ * Java-Klasse für Tscalar.
+ *
+ *
Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
+ *
+ *
+ * <simpleType name="Tscalar">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="String"/>
+ * <enumeration value="Long"/>
+ * <enumeration value="Double"/>
+ * <enumeration value="Float"/>
+ * <enumeration value="Integer"/>
+ * <enumeration value="Byte"/>
+ * <enumeration value="Character"/>
+ * <enumeration value="Boolean"/>
+ * <enumeration value="Short"/>
+ * <enumeration value="Password"/>
+ * </restriction>
+ * </simpleType>
+ *
+ *
+ */
+@XmlType(name = "Tscalar")
+@XmlEnum
+public enum Tscalar {
+
+ @XmlEnumValue("String")
+ STRING("String"),
+ @XmlEnumValue("Long")
+ LONG("Long"),
+ @XmlEnumValue("Double")
+ DOUBLE("Double"),
+ @XmlEnumValue("Float")
+ FLOAT("Float"),
+ @XmlEnumValue("Integer")
+ INTEGER("Integer"),
+ @XmlEnumValue("Byte")
+ BYTE("Byte"),
+ @XmlEnumValue("Character")
+ CHARACTER("Character"),
+ @XmlEnumValue("Boolean")
+ BOOLEAN("Boolean"),
+ @XmlEnumValue("Short")
+ SHORT("Short"),
+ @XmlEnumValue("Password")
+ PASSWORD("Password");
+ private final String value;
+
+ Tscalar(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static Tscalar fromValue(String v) {
+ for (Tscalar c: Tscalar.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/package-info.java b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/package-info.java
new file mode 100644
index 00000000000..750efb551d2
--- /dev/null
+++ b/ui/org.eclipse.pde.bnd.ui/src/org/eclipse/pde/osgi/xmlns/metatype/v1_4/package-info.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2023 eclipse contributors and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * initially generated by jaxb reference implementation v2.2.8-b130911.1802
+ * Christoph Läubrich - adjusted to use the jakarta.xml namespace
+ *******************************************************************************/
+@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.osgi.org/xmlns/metatype/v1.4.0")
+package org.eclipse.pde.osgi.xmlns.metatype.v1_4;