2010-03-10 33 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