XSD如何定义一个有属性的简单元素
在XSD中定义含文本和属性的元素须用simpleContent with extension:先声明complexType含simpleContent,再用extension扩展简单类型并添加attribute;支持具名复用、内联定义、枚举约束及default/fixed属性值。
如果需要在XSD中定义一个既包含文本内容又拥有属性的元素,则该元素不能是纯粹的简单类型,而必须采用“带属性的简单内容”(simpleContent with extension)方式。以下是实现此需求的具体步骤:
一、使用simpleContent与extension声明带属性的简单元素
XML Schema不允许直接为简单类型元素添加属性,必须通过将简单类型嵌入complexType中,并以simpleContent为内容模型,再通过extension扩展属性。该方式保持元素主体为文本值,同时支持附加属性。
1、定义complexType,其内容模型为simpleContent。
2、在simpleContent内使用extension元素,指定base为所需简单类型(如xs:string、xs:integer等)。
3、在extension内部添加attribute子元素,声明所需属性名、类型及是否必需。
4、将该complexType赋予目标元素的type属性或通过匿名定义绑定到element上。
二、定义具名简单类型并扩展为带属性的复合类型
可先声明一个命名的简单类型(如xs:token或自定义restriction),再基于它构建带属性的complexType,提升类型复用性与可维护性。
1、使用xs:simpleType定义名称为myTextType的类型,可附加pattern、maxLength等约束。
2、新建xs:complexType,名称为myElementWithAttr,内部使用xs:simpleContent和xs:extension,base引用myTextType。
3、在xs:extension中添加xs:attribute,设置name为"lang",type为xs:language,use为"optional"。
4、声明xs:element name="title" type="myElementWithAttr"。
三、在元素声明中内联定义带属性的简单内容类型
适用于仅在单处使用的场景,避免全局类型污染,直接在element标签内嵌套complexType定义,结构紧凑且作用域明确。
1、编写xs:element,指定name为"price"。
2、在element内嵌入xs:complexType,不设name属性。
3、在complexType中添加xs:simpleContent,其下嵌套xs:extension,base设为"xs:decimal"。
4、在extension中添加xs:attribute,name为"currency",type为"xs:string",use为"required"。
四、限制属性取值范围并绑定枚举值
当属性需限定为固定集合时,可在attribute内部嵌套xs:simpleType与xs:restriction,并使用xs:enumeration约束合法值,增强数据校验能力。
1、在xs:extension中添加xs:attribute name="status"。
2、在attribute内嵌套xs:simpleType,再嵌套xs:restriction base="xs:string"。
3、添加多个xs:enumeration,value分别设为"active"、"inactive"、"pending"。
4、确保该attribute的use属性设为"optional"或"required"以匹配业务语义。
五、为属性设置默认值或固定值
当希望未显式提供属性时自动赋予特定值,可使用default或fixed属性。default在实例中未出现该属性时生效;fixed则强制要求值一致且不可覆盖。
1、在xs:attribute中添加default="en",使
2、若使用fixed="USD",则所有实例中的currency属性值必须为"USD",否则校验失败。
3、注意:default与fixed不可同时存在,且仅对use="optional"或use="prohibited"的属性有效。
技术教程SEO上一篇 : 苹果手机如何添加263企业邮箱账户
下一篇 : 《咚漫漫画》关闭内置音效方法
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!
n:先声明complexType含simpleContent,再用extension扩展简单类型并添加attribute;支持具名复用、内联定义、枚举约束及default/fixed属性值。