我有这个HTML代码:
<description>This is an <a href="example.htm">example</a> <it>text </it>!</description>
对于此代码,我必须创建一个XSD。
我的尝试是为xs:all
代码和a
代码创建一个it
的元素。但是如何在xs:all
中创建简单文本?我用一个字符串元素尝试了它,但这当然是错误的,因为它是一个元素。但是如果我使用any
元素,它也是一个元素。如何在a和it标签中创建这个简单的文本?
<xs:element name="description" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="a">
<xs:complexType>
<xs:attribute name="href" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="it" type="xs:string" />
<xs:element name="text" type="xs:string" />
</xs:all>
</xs:complexType>
</xs:element>
答案 0 :(得分:3)
允许您的description
元素成为包含a
和it
元素的字符串,其中任意顺序可以零次或多次混合:
mixed="true"
作为mixed content。xs:choice
与minOccurs="0"
一起使用,以允许a
和it
永远不会出现。xs:choice
与maxOccurs="unbounded"
一起使用,以允许a
和it
多次出现。<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="description">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="a">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="href" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="it" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>