Java 我们可以使用协议缓冲区用名称空间序列化xml吗?

Java 我们可以使用协议缓冲区用名称空间序列化xml吗?,java,serialization,protocol-buffers,protobuf-net,xmlserializer,Java,Serialization,Protocol Buffers,Protobuf Net,Xmlserializer,我已经为下面的示例xml创建了原型文件,并且能够序列化它 XMLabc123a 原型 package com.example; option java_package = "com.example"; option java_outer_classname = "EmployeeProtoClass"; message Person { required string name = 1; required int32 id = 2; optional string email =

我已经为下面的示例xml创建了原型文件,并且能够序列化它

XML
abc123a

原型

package com.example;

option java_package = "com.example";
option java_outer_classname = "EmployeeProtoClass";

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
}
但我的问题是,如果我的XML有下面这样的名称空间,那么如何为它创建proto文件?我创建了如下内容,但在转换过程中出现错误(缺少字段名)

带命名空间的XML(EmployeeIN.XML)


有人能建议我们如何使用协议缓冲区对其进行序列化吗?

您定义了名称空间的XML不正确,因为名称空间本身没有正确声明。如果您仅使用
xmlns
,它将声明与XML标记相对应的默认名称空间,而不使用任何前缀,这里您的名称空间是
in
,因此它应该声明为
xmlns:in
,因此它应该是
xmlns:in=”http://employee.in.com“
谢谢@Nicolas的评论。。这只是带有名称空间的示例xml。我的实际问题是如何使用协议缓冲区序列化具有名称空间的xml?协议缓冲区是否支持使用命名空间对xml进行序列化?您应该包括用于序列化的代码。如果我没有错,则使用协议缓冲区时存在序列化问题。我说得对吗?@Jayesh,是的,这是序列化问题。若XML有名称空间,那个么我们就不能使用协议缓冲区进行序列化。
<in:Employee xmlns:in="http://employee.in.com">
    <in:name>abc</in:name>
    <in:id>123</in:id>
    <in:email>a</in:email>
</in:Employee>
package com.example;

option java_package = "com.example";
option java_outer_classname = "EmployeeINProtoClass";

message Person {
  required string in:name = 1;
  required int32 in:id = 2;
  optional string in:email = 3;
}