假設我有一個模式,它在命名空間「general」中定義了一個名爲「MyType」的複雜類型。當一個複雜類型被另一個命名空間中的另一個模式引用時,應該使用什麼XML命名空間?
然後在另一個模式中使用該複雜類型。
例如:
<xsd:schema targetNamespace="http://www.example.com/otherschema"
xmlns:general="http://www.example.com/genschema">
<xsd:import namespace="http://www.example.com/genschema" schemaLocation="general.xsd" />
<xsd:element ref="general:Mytype" />
<xsd:element name="myName" type="general:MyType" />
應該就是符合該模式使用otherschema或genschema的targetNamespace的XML文檔中的XML元素的命名空間。
<general:MyType />
or
<targetNamespacePrefix:Mytype />
我在問這個問題,因爲我使用Axis2來生成Java代碼來與Web服務進行交互。 Axis2代碼對名稱空間進行了檢查,在上面的示例中,它將檢查名稱空間是否是通用名稱,如果不是,則會拋出異常。當然,Web服務響應xml使用targetNamespace而不是常規名稱空間,因此每次都會中斷。我對Axis2開發人員比Web服務的開發人員更有信心,但是我希望在提交錯誤報告之前確認我已經寫好了。
我已經更新了問題,以便在您的答案中更清楚地從您的示例中明確瞭解XML文檔中符合此要求的元素schema應該用作命名空間,一般是定義複雜類型的地方,或者是使用類型的目標命名空間,我認爲它應該是通用的。 – DangerMouse 2011-05-27 16:05:08