Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions jaxb-plugins-parent/tests/simplify-01/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,6 @@
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
</dependencies>
<build>
<defaultGoal>test</defaultGoal>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@
package org.jvnet.jaxb.plugin.simplify.tests01;

import java.util.Date;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;

import jakarta.xml.bind.annotation.adapters.XmlAdapter;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;

/**
*
*
* @author
*/
public class DateAdapter extends XmlAdapter<String, Date> {

private static final DateTimeFormatter PARSER = ISODateTimeFormat
.dateTimeParser().withZoneUTC();
private static final DateTimeFormatter FORMATTER = ISODateTimeFormat
.dateTime().withZoneUTC();

@Override
public String marshal(Date value) throws Exception {
return new DateTime(value).toString(FORMATTER);
}

@Override
public Date unmarshal(String text) throws Exception {
return PARSER.parseDateTime(text).toDate();
}
private static final DateTimeFormatter PARSER = new DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd['T'HH:mm:ss[.SSS][XXX]]")
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
.toFormatter()
.withZone(ZoneId.of("UTC"));

private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ISO_DATE_TIME
.withZone(ZoneId.of("UTC"));

@Override
public String marshal(Date value) throws Exception {
return FORMATTER.format(value.toInstant());
}

@Override
public Date unmarshal(String text) throws Exception {
return Date.from(Instant.from(PARSER.parse(text)));
}

}
40 changes: 18 additions & 22 deletions jaxb-plugins-parent/tests/simplify-02/pom.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jvnet.jaxb</groupId>
Expand All @@ -21,30 +21,26 @@
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
</dependencies>
<build>
<defaultGoal>test</defaultGoal>
<plugins>
<!-- plugin>
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-maven-plugin</artifactId>
<configuration>
<extension>true</extension>
<args>
<arg>-Xsimplify</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>
</plugin>
</plugins>
</configuration>
</plugin-->
<plugin>
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-maven-plugin</artifactId>
<configuration>
<extension>true</extension>
<args>
<arg>-Xsimplify</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>
</plugin>
</plugins>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="1.0" xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb"
<jaxb:bindings version="3.0" xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:simplify="http://jaxb2-commons.dev.java.net/basic/simplify"
xmlns:simplify="urn:jaxb.jvnet.org:plugin:simplify"
jaxb:extensionBindingPrefixes="simplify">

<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema/xs:complexType[@name='oai_dcType']">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
</annotation>

<import namespace="http://purl.org/dc/elements/1.1/"
schemaLocation="http://dublincore.org/schemas/xmls/simpledc20021212.xsd"/>
schemaLocation="simpledc20021212.xsd" />
<!-- schemaLocation="http://dublincore.org/schemas/xmls/simpledc20021212.xsd"/> -->

<element name="dc" type="oai_dc:oai_dcType"/>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://purl.org/dc/elements/1.1/"
targetNamespace="http://purl.org/dc/elements/1.1/"
elementFormDefault="qualified"
attributeFormDefault="unqualified">

<xs:annotation>
<xs:documentation xml:lang="en">
Simple DC XML Schema, 2002-10-09
by Pete Johnston ([email protected]),
Carl Lagoze ([email protected]), Andy Powell ([email protected]),
Herbert Van de Sompel ([email protected]).
This schema defines terms for Simple Dublin Core, i.e. the 15
elements from the http://purl.org/dc/elements/1.1/ namespace, with
no use of encoding schemes or element refinements.
Default content type for all elements is xs:string with xml:lang
attribute available.

Supercedes version of 2002-03-12.
Amended to remove namespace declaration for http://www.w3.org/XML/1998/namespace namespace,
and to reference lang attribute via built-in xml: namespace prefix.
xs:appinfo also removed.
</xs:documentation>
</xs:annotation>

<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="xml.xsd">
<!--schemaLocation="http://www.w3.org/2001/03/xml.xsd">-->
</xs:import>

<xs:element name="title" type="elementType"/>
<xs:element name="creator" type="elementType"/>
<xs:element name="subject" type="elementType"/>
<xs:element name="description" type="elementType"/>
<xs:element name="publisher" type="elementType"/>
<xs:element name="contributor" type="elementType"/>
<xs:element name="date" type="elementType"/>
<xs:element name="type" type="elementType"/>
<xs:element name="format" type="elementType"/>
<xs:element name="identifier" type="elementType"/>
<xs:element name="source" type="elementType"/>
<xs:element name="language" type="elementType"/>
<xs:element name="relation" type="elementType"/>
<xs:element name="coverage" type="elementType"/>
<xs:element name="rights" type="elementType"/>

<xs:group name="elementsGroup">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="title"/>
<xs:element ref="creator"/>
<xs:element ref="subject"/>
<xs:element ref="description"/>
<xs:element ref="publisher"/>
<xs:element ref="contributor"/>
<xs:element ref="date"/>
<xs:element ref="type"/>
<xs:element ref="format"/>
<xs:element ref="identifier"/>
<xs:element ref="source"/>
<xs:element ref="language"/>
<xs:element ref="relation"/>
<xs:element ref="coverage"/>
<xs:element ref="rights"/>
</xs:choice>
</xs:sequence>
</xs:group>

<xs:complexType name="elementType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>

</xs:schema>
116 changes: 116 additions & 0 deletions jaxb-plugins-parent/tests/simplify-02/src/main/resources/xml.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
<?xml version='1.0'?>
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">

<xs:annotation>
<xs:documentation>
See http://www.w3.org/XML/1998/namespace.html and
http://www.w3.org/TR/REC-xml for information about this namespace.

This schema document describes the XML namespace, in a form
suitable for import by other schema documents.

Note that local names in this namespace are intended to be defined
only by the World Wide Web Consortium or its subgroups. The
following names are currently defined in this namespace and should
not be used with conflicting semantics by any Working Group,
specification, or document instance:

base (as an attribute name): denotes an attribute whose value
provides a URI to be used as the base for interpreting any
relative URIs in the scope of the element on which it
appears; its value is inherited. This name is reserved
by virtue of its definition in the XML Base specification.

lang (as an attribute name): denotes an attribute whose value
is a language code for the natural language of the content of
any element; its value is inherited. This name is reserved
by virtue of its definition in the XML specification.

space (as an attribute name): denotes an attribute whose
value is a keyword indicating what whitespace processing
discipline is intended for the content of the element; its
value is inherited. This name is reserved by virtue of its
definition in the XML specification.

Father (in any context at all): denotes Jon Bosak, the chair of
the original XML Working Group. This name is reserved by
the following decision of the W3C XML Plenary and
XML Coordination groups:

In appreciation for his vision, leadership and dedication
the W3C XML Plenary on this 10th day of February, 2000
reserves for Jon Bosak in perpetuity the XML name
xml:Father
</xs:documentation>
</xs:annotation>

<xs:annotation>
<xs:documentation>This schema defines attributes and an attribute group
suitable for use by
schemas wishing to allow xml:base, xml:lang or xml:space attributes
on elements they define.

To enable this, such a schema must import this schema
for the XML namespace, e.g. as follows:
&lt;schema . . .>
. . .
&lt;import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>

Subsequently, qualified reference to any of the attributes
or the group defined below will have the desired effect, e.g.

&lt;type . . .>
. . .
&lt;attributeGroup ref="xml:specialAttrs"/>

will define a type which will schema-validate an instance
element with any of those attributes</xs:documentation>
</xs:annotation>

<xs:annotation>
<xs:documentation>In keeping with the XML Schema WG's standard versioning
policy, this schema document will persist at
http://www.w3.org/2001/03/xml.xsd.
At the date of issue it can also be found at
http://www.w3.org/2001/xml.xsd.
The schema document at that URI may however change in the future,
in order to remain compatible with the latest version of XML Schema
itself. In other words, if the XML Schema namespace changes, the version
of this document at
http://www.w3.org/2001/xml.xsd will change
accordingly; the version at
http://www.w3.org/2001/03/xml.xsd will not change.
</xs:documentation>
</xs:annotation>

<xs:attribute name="lang" type="xs:language">
<xs:annotation>
<xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
codes as the enumerated possible values . . .</xs:documentation>
</xs:annotation>
</xs:attribute>

<xs:attribute name="space" default="preserve">
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="default"/>
<xs:enumeration value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>

<xs:attribute name="base" type="xs:anyURI">
<xs:annotation>
<xs:documentation>See http://www.w3.org/TR/xmlbase/ for
information about this attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>

<xs:attributeGroup name="specialAttrs">
<xs:attribute ref="xml:base"/>
<xs:attribute ref="xml:lang"/>
<xs:attribute ref="xml:space"/>
</xs:attributeGroup>

</xs:schema>
4 changes: 0 additions & 4 deletions jaxb-plugins-parent/tests/simplify-03/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
</dependencies>
<build>
<defaultGoal>test</defaultGoal>
Expand Down
Loading
Loading