2010-03-10 57 views
1

我从需要处理的服务中获取这个XML。我没有太多关于XML Schema或命名空间fu​​,但对我来说它看起来很乱。有人可以看看它,并告诉我如何使它更好?帮我清理一些难看的XML

http://gist.github.com/325952

我知道的命名空间定义可以在第一行中声明,而不是线。还有什么可以清理的吗?

+0

我相信命名空间的URI应该是一个有效的RFC 3986 URI,或者至少如果他们打算使用“http”前缀。而这不是。也许我错了? – thermans 2010-03-10 19:50:56

+1

它没有理由为什么它只是常见的做法 - 但它确实遵循,如果你要包含一个URI它应该是有效的。 编辑:事实上,我认为有人应该指出 - 一个XML命名空间只是一个字符串。对此使用URI是“传统”,但使用其他任何东西同样有效。任何时候都不会查找URI。 – 2010-03-10 19:54:31

+0

@Daniel I-S我想你可能会说“这是一个使用URL的传统”。它必须是一个URI,但是是的,一个URI不需要一个协议限定符等,因此一个普通的字符串工作。 URN也用在我工作过的一些地方。 – xcut 2010-03-10 20:57:51

回答

3

我会说:留下前两个元素与xsd前缀:它只发生在两个最外层的元素。另外,在根目录中声明xmlns="http://com/acmephone/ovm/cas/types"并从所有内容中删除typ:前缀。

编辑:实际上将xsd前缀更改为其他前缀;它并不重要,但似乎只会导致使用通常绑定到XML模式名称空间的前缀的混淆。

+0

+1我试过同样的事情,但正如我想解释的那样,我陷入了W3C规范 – stacker 2010-03-10 20:07:23

+0

好吧,应该很容易上手。删除所有xmlns:typ =“”属性;然后用空字符串搜索并替换typ:最后将声明放在我的答案的根目录下。 – xcut 2010-03-10 20:58:36