我试图达到here的相反。我有一个抽象类,但我不希望输出抽象类的类型和标签。所以,我需要的输出,它基本上看起来像马歇尔抽象类没有它的类型定义
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dokument ausgabe="ausgabe_test.doc" vorlage="vorlage_test.dot">
<marke typ="text" name="test">
<text>This is a test</text>
</marke>
</dokument>
而不是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dokument ausgabe="ausgabe_test.doc" vorlage="vorlage_test.dot">
<marke typ="text" name="test">
<inhalt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="text">
<text>This is a test</text>
</inhalt>
</marke>
</dokument>
Text
从抽象类继承Inhalt
。
我的当前(生成)模式如下所示。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="dokument" type="dokument"/>
<xs:complexType name="dokument">
<xs:sequence>
<xs:element name="marke" type="marke" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="vorlage" type="xs:string" use="required"/>
<xs:attribute name="ausgabe" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="marke">
<xs:sequence>
<xs:element name="inhalt" type="inhalt"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="typ" type="markenTyp" use="required"/>
</xs:complexType>
<xs:complexType name="inhalt" abstract="true">
<xs:sequence/>
<xs:attribute name="style" type="xs:string"/>
</xs:complexType>
<xs:complexType name="text">
<xs:complexContent>
<xs:extension base="inhalt">
<xs:sequence>
<xs:element name="text" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="markenTyp">
<xs:restriction base="xs:string">
<xs:enumeration value="text"/>
<xs:enumeration value="tabelle"/>
<xs:enumeration value="liste"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
您没有包含架构,因此评论有点棘手。原则上,你不能序列化一个抽象的元素或类型,因为这是非法的... – xcut 2010-08-31 08:21:29
我的模式生成了,所以我认为它不会那么有趣。我将它添加到我最初的问题中。 – Jan 2010-08-31 12:34:44