View Javadoc
1   /**
2    * Copyright (C) 2014-2015 Philip Helger (www.helger.com)
3    * philip[at]helger[dot]com
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    *
9    *         http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package com.helger.schematron.svrl;
18  
19  import javax.annotation.Nonnull;
20  import javax.annotation.concurrent.NotThreadSafe;
21  import javax.xml.bind.JAXBElement;
22  
23  import org.oclc.purl.dsdl.svrl.ObjectFactory;
24  import org.oclc.purl.dsdl.svrl.SchematronOutputType;
25  
26  import com.helger.commons.debug.GlobalDebug;
27  import com.helger.commons.io.resource.ClassPathResource;
28  import com.helger.jaxb.AbstractJAXBMarshaller;
29  
30  /**
31   * This is the XML reader and write for Schematron SVRL documents. It reads XML
32   * DOM documents and returns {@link SchematronOutputType} elements and vice
33   * versa. The reading and writing itself is done with JAXB.<br>
34   *
35   * @author Philip Helger
36   */
37  @NotThreadSafe
38  public class SVRLMarshaller extends AbstractJAXBMarshaller <SchematronOutputType>
39  {
40    public SVRLMarshaller ()
41    {
42      super (SchematronOutputType.class, new ClassPathResource (CSVRL.SVRL_XSD_PATH));
43      setWriteFormatted (GlobalDebug.isDebugMode ());
44    }
45  
46    @Override
47    @Nonnull
48    protected JAXBElement <SchematronOutputType> wrapObject (final SchematronOutputType aObject)
49    {
50      return new ObjectFactory ().createSchematronOutput (aObject);
51    }
52  }