Spring boot - Удалите xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" из спокойного ответа - PullRequest
0 голосов
/ 16 января 2020

В моем проекте я хочу получить спокойный ответ в JSON и XML, в то время как я получаю ответ в XML, пространство имен XML добавляется, если значение недоступно. Я хочу удалить пространство имен xml из ответа XML, как показано ниже -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
    <empId>1000</empId>
    <firstName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
    <lastName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
    <salary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
    <status xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</employee>

Я хочу вывод ниже -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
    <empId>1000</empId>
    <firstName />
    <lastName />
    <salary />
    <status />
</employee>

Класс модели -

   package com.example.model;

    @Setter
    @AllArgsConstructor
    @NoArgsConstructor
    @XmlRootElement
    @JsonPropertyOrder({"empId", "firstName", "lastName", "salary", "status"})
    @XmlType(propOrder = {"empId", "firstName", "lastName", "salary", "status"})
    public class Employee {
        private Integer empId;

        private String firstName;
        private String lastName;
        private Double salary;
        private Boolean status;

        @XmlElement(name = "empId", nillable = true)
        public Integer getEmpId() {
            return empId;
        }

        @XmlElement(name = "firstName", nillable = true, type = Object.class)
        public String getFirstName() {
            return firstName;
        }

        @XmlElement(name = "lastName", nillable = true)
        public String getLastName() {
            return lastName;
        }

        @XmlElement(name = "salary", nillable = true)
        public Double getSalary() {
            return salary;
        }

        @XmlElement(name = "status", nillable = true)
        public Boolean getStatus() {
            return status;
        }
    }

А Класс Dto -

package com.example.model;

@Setter
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlRootElement
public class EmployeeDto implements Serializable {

    private Employee employee;

    @XmlElement(name = "employee")
    public Employee getEmployee() {
        return employee;
    }
}

Класс обслуживания -

package com.example.services;

@Service
public class EmployeeService {

    public Employee getAnEmployee() {
        Employee employee = new Employee();
        employee.setEmpId(1000);
        return employee;
    }
}

Класс контроллера -

package com.example.resource;


@RestController
@RequestMapping("/emp")
public class EmployeeResource {

    @Autowired
    private EmployeeService empService;

    @GetMapping("/getAnEmp")
    public Employee getAnEmployees() {
        return empService.getAnEmployee();
    }
}

pom. xml file -

<?xml version="1.0" encoding="UTF-8"?>
<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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.11.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo1</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...