summaryrefslogtreecommitdiff
path: root/utils/src/main/java/at/gv/egiz/marshal
diff options
context:
space:
mode:
Diffstat (limited to 'utils/src/main/java/at/gv/egiz/marshal')
-rw-r--r--utils/src/main/java/at/gv/egiz/marshal/MarshallerFactory.java12
-rw-r--r--utils/src/main/java/at/gv/egiz/marshal/NamespacePrefix.java34
-rw-r--r--utils/src/main/java/at/gv/egiz/marshal/NamespacePrefixMapperImpl.java54
3 files changed, 32 insertions, 68 deletions
diff --git a/utils/src/main/java/at/gv/egiz/marshal/MarshallerFactory.java b/utils/src/main/java/at/gv/egiz/marshal/MarshallerFactory.java
index ccebcc81..3ac0a86e 100644
--- a/utils/src/main/java/at/gv/egiz/marshal/MarshallerFactory.java
+++ b/utils/src/main/java/at/gv/egiz/marshal/MarshallerFactory.java
@@ -31,13 +31,17 @@ public class MarshallerFactory {
private static final Log log = LogFactory.getLog(MarshallerFactory.class);
- public static Marshaller createMarshaller(JAXBContext ctx, boolean formattedOutput) throws JAXBException {
+ public static Marshaller createMarshaller(JAXBContext ctx, boolean formattedOutput, boolean fragment) throws JAXBException {
Marshaller m = ctx.createMarshaller();
try {
if (formattedOutput) {
log.trace("setting marshaller property FORMATTED_OUTPUT");
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
}
+ if (fragment) {
+ log.trace("setting marshaller property FRAGMENT");
+ m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+ }
log.trace("setting marshaller property NamespacePrefixMapper");
m.setProperty("com.sun.xml.bind.namespacePrefixMapper", new NamespacePrefixMapperImpl());
} catch (PropertyException ex) {
@@ -45,8 +49,12 @@ public class MarshallerFactory {
}
return m;
}
+
+ public static Marshaller createMarshaller(JAXBContext ctx, boolean formattedOutput) throws JAXBException {
+ return createMarshaller(ctx, formattedOutput, false);
+ }
public static Marshaller createMarshaller(JAXBContext ctx) throws JAXBException {
- return createMarshaller(ctx, false);
+ return createMarshaller(ctx, false, false);
}
}
diff --git a/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefix.java b/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefix.java
deleted file mode 100644
index 3ae1d0ff..00000000
--- a/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefix.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package at.gv.egiz.marshal;
-
-/**
- *
- * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
- */
-public interface NamespacePrefix {
- String CARDCHANNEL_PREFIX = "cc";
- String ECDSA_PREFIX = "ecdsa";
- String PERSONDATA_PREFIX = "pr";
- String SAML10_PREFIX = "saml";
- String SL_PREFIX = "sl";
- String XADES_PREFIX = "xades";
- String XMLDSIG_PREFIX = "dsig";
- String XSI_PREFIX = "xsi";
-
-}
diff --git a/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefixMapperImpl.java b/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefixMapperImpl.java
index 519f6b1f..e0698977 100644
--- a/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefixMapperImpl.java
+++ b/utils/src/main/java/at/gv/egiz/marshal/NamespacePrefixMapperImpl.java
@@ -17,6 +17,9 @@
package at.gv.egiz.marshal;
//import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
+import java.util.HashMap;
+import java.util.Map;
+
import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -29,45 +32,32 @@ public class NamespacePrefixMapperImpl extends NamespacePrefixMapper {
private static final Log log = LogFactory.getLog(NamespacePrefixMapperImpl.class);
+ protected static final Map<String, String> prefixMap = new HashMap<String, String>();
+
+ static {
+ prefixMap.put("http://www.w3.org/2001/XMLSchema-instance", "xsi");
+ prefixMap.put("http://www.w3.org/2000/09/xmldsig#", "dsig");
+ prefixMap.put("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "sl");
+ prefixMap.put("http://www.buergerkarte.at/cardchannel", "cc");
+ prefixMap.put("http://www.w3.org/2001/04/xmldsig-more#", "ecdsa");
+ prefixMap.put("http://reference.e-government.gv.at/namespace/persondata/20020228#", "pr");
+ prefixMap.put("urn:oasis:names:tc:SAML:1.0:assertion", "saml");
+ prefixMap.put("http://uri.etsi.org/01903/v1.1.1#", "xades");
+ prefixMap.put("http://www.buergerkarte.at/namespaces/securitylayer/20020225#", "sl10");
+ prefixMap.put("http://www.buergerkarte.at/namespaces/securitylayer/20020831#", "sl11");
+ }
+
+
@Override
public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) {
if (log.isTraceEnabled()) {
log.trace("prefix for namespace " + namespaceUri + " requested");
}
- if ("http://www.w3.org/2001/XMLSchema-instance".equals(namespaceUri)) {
- return NamespacePrefix.XSI_PREFIX;
- }
-
- if ("http://www.w3.org/2000/09/xmldsig#".equals(namespaceUri)) {
- return NamespacePrefix.XMLDSIG_PREFIX;
- }
-
- if ("http://www.buergerkarte.at/namespaces/securitylayer/1.2#".equals(namespaceUri)) {
- return NamespacePrefix.SL_PREFIX;
- }
-
- if ("http://www.buergerkarte.at/cardchannel".equals(namespaceUri)) {
- return NamespacePrefix.CARDCHANNEL_PREFIX;
- }
-
- if ("http://www.w3.org/2001/04/xmldsig-more#".equals(namespaceUri)) {
- return NamespacePrefix.ECDSA_PREFIX;
- }
-
- if ("http://reference.e-government.gv.at/namespace/persondata/20020228#".equals(namespaceUri)) {
- return NamespacePrefix.PERSONDATA_PREFIX;
- }
-
- if ("urn:oasis:names:tc:SAML:1.0:assertion".equals(namespaceUri)) {
- return NamespacePrefix.SAML10_PREFIX;
- }
-
- if ("http://uri.etsi.org/01903/v1.1.1#".equals(namespaceUri)) {
- return NamespacePrefix.XADES_PREFIX;
- }
- return suggestion;
+ String prefix = prefixMap.get(namespaceUri);
+
+ return (prefix != null) ? prefix : suggestion;
}
/**