0

0

XSD如何定义一个有属性的简单元素

畫卷琴夢

畫卷琴夢

发布时间:2025-12-25 10:39:07

|

994人浏览过

|

来源于php中文网

原创

在XSD中定义含文本和属性的元素须用simpleContent with extension:先声明complexType含simpleContent,再用extension扩展简单类型并添加attribute;支持具名复用、内联定义、枚举约束及default/fixed属性值。

xsd如何定义一个有属性的简单元素

如果需要在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"。

KGOGOMALL
KGOGOMALL

主要功能:无限级分类,可自由调整分类位置,商品可在各分类间自由转移; 商品组合:可以为每种商品添加多种选项,方便顾客购买选择,比如:一件衣服顾客可以选择款式、花色、大小等,笔记本电脑,可以有cpu、内存、显示屏、硬盘等等扩展属性; 会员分级功能,会员积分功能。可根据会员积分自行设定用户组,管理员可自行定义会员获得积分的方式:按订单总金额或者按单个商品给予积分; 按照商品类别查看热卖、特价,允

下载

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",使19.99等效于19.99

2、若使用fixed="USD",则所有实例中的currency属性值必须为"USD",否则校验失败。

3、注意:default与fixed不可同时存在,且仅对use="optional"或use="prohibited"的属性有效。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

311

2023.08.02

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1837

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2078

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

910

2024.11.28

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6025

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

777

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1042

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1060

2024.03.01

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 2.4万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.8万人学习

NumPy 教程
NumPy 教程

共44课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号