有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何仅在XML的根元素上声明名称空间

有没有办法在用Jackson序列化的XML字符串的根元素上声明所有名称空间

这就是我所期望的:

<?xml version="1.0" encoding="UTF-8"?>
<RequestMessage xmlns="Example1" xmlns:m="Example2">
   <Header>
      <Verb>get</Verb>
      <Noun>MeterReadings</Noun>
      <User>
         <UserID>admin</UserID>
      </User>
      <Password>password</Password>
   </Header>
   <Request>
      <m:Readings>
         <m:Device>
            <m:mRID>12345</m:mRID>
         </m:Device>
         <m:ReadingType>A</m:ReadingType>
      </m:Readings>
   </Request>
</RequestMessage>

这就是我得到的:

<?xml version="1.0" encoding="UTF-8"?>
<RequestMessage xmlns="Example1">
   <Header>
      <Verb>get</Verb>
      <Noun>readings</Noun>
      <User>
         <UserID>admin</UserID>
      </User>
      <Password>password</Password>
   </Header>
   <Request>
      <m:Readings xmlns:m="Example2">
         <m:Device>
            <m:mRID>12345</m:mRID>
         </m:Device>
         <m:ReadingType>A</m:ReadingType>
      </m:Readings>
   </Request>
</RequestMessage>

我用@JacksonXmlProperty注释所有变量以设置localName和namespace,并在根类中使用@JacksonXmlRootElement来设置根元素的localName和namespace。但内部元素的名称空间仅在使用名称空间的第一个元素中声明。如何在顶部的根元素声明all,如示例所示


共 (0) 个答案