xml - XML类型定义不能是抽象的,xsd中没有非抽象类型
问题描述
我有一个外部 xsd,我想创建一个有效的 xml。xsd 包含一个复杂的类型定义:
<xsd:complexType name="STE_SomeType" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
问题是,在创建 xml 时没有可以使用扩展 STE_SomeType 的非抽象类型。因此,如果我使用以下命令创建 xml:
<Foo xmlns:dat="http://www.example.com/namespace/datatype" xsi:type='dat:STE_SomeType'>abc</Foo>
我收到一个验证错误“错误:(48, 89) cvc-type.2:元素 Foo 的类型定义不能是抽象的。” 而且我只是不知道我需要提供什么作为 xsi:type 才能获得有效的 xml,因为 xsd 中没有合适的复杂类型。
有没有办法使用 STE_SomeType 具有 simpleContent xsd:string 的事实,或者我可以在 xml 中定义类似“私有类型”扩展 STE_SomeType 的东西?
解决方案
如果架构包含抽象类型并且没有该类型的具体限制,那么看起来架构的作者希望您使用您自己的类型的具体限制来扩展它 - 否则抽象类型将毫无用处。
推荐阅读
- javascript - 在 JavaScript 中将时间“1hr 30m 4s”解析为提前时间
- android - React Native:来自多个域的 Axios 网络错误
- javascript - 如何使用 redux 从数据库中删除数据?
- entity-framework - 如何看到当前枚举器在实体框架中保持连接打开?
- python - 如何使用 subprocess.call 在 linux 中重新启动服务?
- message - 删除不和谐代码上的自己/个人聊天记录
- matlab - powf() 函数的奇怪行为
- python - 在 App Engine Python 中动态向 Google Datastore 实体添加属性(灵活的环境)
- reactjs - 如何使用 Rust 在 webview 中加载 WASM 模块?
- ruby - 为什么我会收到缺少必需键 [:id] 的 UrlGenerationError?