企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# XSD 属性 所有的属性均作为简易类型来声明。 ## 什么是属性? 简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的。 ## 如何声明属性? 定义属性的语法是 ``` <xs:attribute name="xxx" type="yyy"/> ``` 在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。 ### 最常用的类型是: * xs:string * xs:decimal * xs:integer * xs:boolean * xs:date * xs:time ### 实例 这是带有属性的 XML 元素: ``` <lastname lang="EN">Smith</lastname> ``` 这是对应的属性定义: ``` <xs:attribute name="lang" type="xs:string"/> ``` ## 属性的默认值和固定值 属性可拥有指定的默认值或固定值。 当没有其他的值被规定时,默认值就会自动分配给元素。 在下面的例子中,缺省值是 "EN": ``` <xs:attribute name="lang" type="xs:string" default="EN"/> ``` 固定值同样会自动分配给元素,并且您无法规定另外的值。 在下面的例子中,固定值是 "EN": ``` <xs:attribute name="lang" type="xs:string" fixed="EN"/> ``` ## 可选的和必需的属性 在缺省的情况下,属性是可选的。如需规定属性为必选,请使用 "use" 属性: ``` <xs:attribute name="lang" type="xs:string" use="required"/> ``` ## 对内容的限定 当 XML 元素或属性拥有被定义的数据类型时,就会向元素或属性的内容添加限定。 假如 XML 元素的类型是 "xs:date",而其包含的内容是类似 "Hello World" 的字符串,元素将不会(通过)验证。 通过 XML schema,您也可向您的 XML 元素及属性添加自己的限定。这些限定被称为 facet(编者注:意为(多面体的)面,可译为限定面)。您会在下一节了解到更多有关 facet 的知识。