Spring OXM - Update Project Castor


Advertisements

Update the content of pom.xml to have castor dependencies as shown below −

pom.xml

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.tutorialspoint</groupId>
   <artifactId>springoxm</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>Spring OXM</name>
   <description>Spring OXM Project</description>
   <properties>
      <org.springframework.version>4.3.7.RELEASE</org.springframework.version>
      <org.hibernate.version>5.2.9.Final</org.hibernate.version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <java.version>1.8</java.version>    
   </properties> 	
   <dependencies>
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
         <version>${org.springframework.version}</version>
         <scope>compile</scope>
      </dependency>
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-oxm</artifactId>
         <version>${org.springframework.version}</version>
         <scope>compile</scope>
      </dependency>
      <dependency>
         <groupId>org.codehaus.castor</groupId>
         <artifactId>castor-core</artifactId>
         <version>1.4.1</version>
      </dependency>   
      <dependency>
         <groupId>org.codehaus.castor</groupId>
         <artifactId>castor-xml</artifactId>
         <version>1.4.1</version>
      </dependency>
   </dependencies>
   <build>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
               <source>${java.version}</source>
               <target>${java.version}</target>
            </configuration>
         </plugin>
      </plugins>
   </build>
</project>

Add a mapping xml required for castor mapping to map Student class as mappings.xml under src → main → resources folder as shown below.

mappings.xml

<?xml version="1.0"?>  
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.org/mapping.dtd">  
<mapping>  
   <class name="com.tutorialspoint.oxm.model.Student" auto-complete="true" >  
      <map-to xml="Student"/>  
      <field name="id" type="integer">  
         <bind-xml name="id" node="attribute"></bind-xml>  
      </field>  
      <field name="name">  
         <bind-xml name="name"></bind-xml>  
      </field>  
      <field name="age">  
         <bind-xml name="age" type="int"></bind-xml>  
      </field>          
   </class>      
</mapping>

Update applicationcontext.xml in src → main → resources with the following content to use CastorMarshaller. CastorMarshaller object can be used for both marshalling and unmarshalling.

applicationcontext.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   xmlns:oxm="http://www.springframework.org/schema/oxm"  
   xsi:schemaLocation="http://www.springframework.org/schema/beans   
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
   http://www.springframework.org/schema/oxm  
   http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd">  

   <bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller">  
      <property name="targetClass" value="com.tutorialspoint.oxm.model.Student"></property>  
      <property name="mappingLocation" value="mappings.xml"></property>  
   </bean>  
</beans>  
Advertisements