如何在xs:complexType中扩展选择>> [

问题描述 投票:0回答:2
我有这个小的XML模式。是否可以扩展“ contentType”而不是重复其内容?

我认为一个陷阱是“ contentWithInputType”元素可以进一步包含“ contentWithInputType”元素,但“ contentType”元素只能包含“ contentType”元素。

<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://meinnamespace.meinefirma.de" targetNamespace="http://meinnamespace.meinefirma.de" elementFormDefault="qualified"> <xs:element name="ROOTNODE"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="content" type="contentType" /> <xs:element name="contentWithInput" type="contentWithInputType" /> </xs:choice> </xs:complexType> </xs:element> <xs:complexType name="contentType" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="span" type="contentType" /> <xs:element name="b" type="contentType" /> <xs:element name="i" type="contentType" /> </xs:choice> </xs:complexType> <xs:complexType name="contentWithInputType" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="span" type="contentWithInputType" /> <xs:element name="b" type="contentWithInputType" /> <xs:element name="i" type="contentWithInputType" /> <xs:element name="input" type="xs:string" /> </xs:choice> </xs:complexType> </xs:schema>

我有这个小的XML模式。是否可以扩展“ contentType”而不是重复其内容?我认为一个陷阱是“ contentWithInputType”元素可以包含更多的“ ...
xml xsd
2个回答
0
投票
您可以不要:

0
投票
也许您应该使用替代组。声明一个抽象元素inline;使它成为contentType中允许的唯一元素;然后用span定义元素ibsubstitutionGroup="inline"等。
© www.soinside.com 2019 - 2024. All rights reserved.