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>

我得到一个验证错误" error:(48,89) cvc-type。元素Foo的类型定义不能是抽象的。我只是不知道我需要给xsi:type什么来获得一个有效的xml,因为xsd中没有合适的复杂类型。

是否有办法使用STE_SomeType具有simpleContent xsd:string的事实或者我可以定义一些"私有类型"之类的东西吗?扩展STE_SomeType在xml?

如果模式包含抽象类型而没有该类型的具体限制,那么看起来好像模式的作者希望您使用自己对该类型的具体限制来扩展它-否则抽象类型将不起作用。

最新更新