2011-02-03 66 views
0

我有一個描述XHTML文檔的xsd。然而,我正在使用的應用程序可能會有一些選定的asp.net控件在標記中進行驗證。因此驗證失敗。將asp.net控件標籤添加到XML模式文件

一個例子控制可能是:

<smart:Address runat="server" /> 

我想一個新的元素添加到XSD文件,但是當我指定:

<xs:element name="smart:Address"> 

我得到驗證錯誤作爲一個元素名稱不得有一個冒號。

任何人都可以建議我怎麼能夠擴展架構文件,以允許選定的服務器控件?

更新 要順水推舟全XSD,請訪問: xhtml1-transistional.xsd

+0

你見過xml命名空間嗎? – 2011-02-03 09:58:18

回答

2

你缺少「智能」是一個XML命名空間。

換句話說:你需要申報的 「智能」 的命名空間:

<xs:schema xmlns:smart="http://someurl" ...... 

這裏瞭解更多:

+0

不,您需要在現有的架構元素中聲明XML命名空間(xmlns:smart):) – 2011-02-04 08:43:06

0

你需要把該元素的聲明智能命名空間放在一個單獨的模式文檔中,其targetNamespace屬性標識命名空間。像xs:element和xs:simpleType這樣的結構的名稱屬性始終是一個非限定(本地)名稱,由targetNamespace進行隱式限定(即使對於本地元素聲明,也可以使用elementFormDefault =「qualified」來確保這是真實的)。 (a)必須有一個xs:import聲明來指明依賴關係,並且(b)您使用一個限定名稱作爲引用,形式爲prefix:local,其中前綴通過xs:schema元素使用xmlns:prefix =「uri」聲明綁定到相應的名稱空間。