2010-01-22 30 views
9

我有開頭XSD文檔:當我嘗試製圖應用類似的BizTalk它炸燬抱怨命名空間使用此XSD這是什麼XSD導入命名空間?

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:import namespace="http://www.w3.org/XML/1998/namespace"  schemaLocation="http://www.w3.org/2001/xml.xsd"/> 
    <xs:complexType name="T_segment"> 
     <xs:sequence> 
      <xs:element ref="element" maxOccurs="unbounded"/> 
     </xs:sequence> 
     <xs:attribute ref="xml:space" use="required"/> 
     <xs:attribute ref="id" use="required"/> 
    </xs:complexType> 
... 

。因此,我刪除了xs:import命名空間標記,並且它抱怨了xs:attribute ref =「xml:space」標記。所以,我刪除它,它似乎工作正常(至少不會炸燬)。

我的問題是,這些標籤是什麼?通過刪除他們我打破了XSD?

從我知道的命名空間是爲了避免衝突。但在xsd中,所有內容都以xs爲前綴,模式本身具有xmlns:xs =「http://www.w3.org/2001/XMLSchema」。我不確定那是什麼進口。

+0

你看過導入標籤的W3C文檔嗎? (http://www.w3.org/TR/xmlschema-0/#import)。 –

+1

是的,我確實閱讀過文檔,但無法弄清楚它們的含義,因爲它涉及到許多其他我無法遵循的細節。我想我只需要一個人來說「這意味着這個......並把它拿出來意味着......」。 – dtc

回答

8

<xs:import />元素將XML名稱空間導入到模式中。導入的名稱空間包含「空間」屬性的定義。 <xs:attribute ref="xml:space" use="required"/>位通過引入的模式爲「T_segment」複雜類型定義了必需的「空間」屬性(即,不必重寫定義)。空間屬性本質上使您能夠定義是否whitespace is significant for the element or not

現在,根據您實際使用的應用程序可能會突破,因爲本質上是從複雜類型中刪除了一個約束,該約束可能與使用此模式描述的文檔的應用程序相關。不知道更多的應用程序,很難說這在你的案例中是否重要。

+0

太好了。我現在明白了。感謝您用清楚的語言解釋它。 – dtc