我正在实现 XMPP 的自制子协议,并且我正在使用 StAX 和 JAXB 的组合来解析/编组消息。当我整理一条消息时,我最终会收到大量未定义的命名空间声明:
<ns2:auth xmlns:ns2="urn:ietf:params:xml:ns:ilf-auth"
xmlns:ns4="ilf:iq:experiment:power" xmlns:ns3="ilf:iq:experiment:init"
xmlns:ns5="ilf:iq:experiment:values" xmlns:ns6="ilf:iq:experiment:result"
xmlns:ns7="ilf:iq:experiment:stop" xmlns:ns8="ilf:iq:experiment:end">
compton@ilf</ns2:auth>
代替:
<ns:auth xmlns:ns="urn:ietf:params:xml:ns:ilf-auth>compton@ilf</ns:auth>
有什么办法可以转掉吗?
所有这些名称空间都用于由 JAXB 编组/解组的不同消息中,但每条消息都使用一个名称空间。
PS。我不是 XML 专家,如果我犯了一些愚蠢的错误,请不要骂我;)