相同或不同的xml命名空间?

时间:2012-08-29 16:05:24

标签: xml xml-namespaces

在我的项目中,有许多各种类型的XML文件,如XSD,WSDL,参数映射等。它们都由IDE接收生成的命名空间,但命名空间不是唯一的(跨项目 - 具有相同的元素) name获取相同的命名空间)或描述性(或令人困惑 - 它们都以“http://www.ibm.com / ...”开头,即使它们定义了我自己的实体,而不是IBM的实体)。那么名称空间重构是必要的。

我怀疑如下:

1)每个元素是否都有自己的命名空间,或者相关元素是否应该共享其命名空间?例如,

  • SOAP请求和响应消息是属于同一名称空间,还是应该有自己的名称空间?
  • WSDL和相关的XSD应该使用相同的目标名称空间,还是不同的?

例如:

http://www.xarx.com/xmlns/TheProject/Administration/wsdl/StartProcess
http://www.xarx.com/xmlns/TheProject/Administration/xsd/StartProcessRequest
http://www.xarx.com/xmlns/TheProject/Administration/xsd/StartProcessResponse

或一切进入

http://www.xarx.com/xmlns/TheProject/Administration

2)必须纠正所有公开显示的名称空间。但是项目内部的那些 - 他们的重构是浪费时间吗?它们可能出现在管理控制台或日志中,错误的命名空间可能会产生误导。

1 个答案:

答案 0 :(得分:0)

我们尝试在WebSphere ESB中使用相同的XML命名空间来处理所有相关元素,以下是我的经验:

所有相关元素都可以使用相同的命名空间,IDE和编译器都不会打扰。具有不同用途的元素通常具有不同的名称,因此它们不会导致名称冲突。但IDE会生成大量XML文件,有时会生成的元素与您要使用的元素具有相同的名称。 (通常,XXX_Request和XXX_Response是Websphere Integration Developer生成的派生WSDL文件的名称,因此我们必须使用XXX_Req和XXX_Res代替。)