在我的xml模式中,我有一个名为itemsetting的标记:
<xs:element name="itemsetting">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="key" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="questionscript"/>
<xs:enumeration value="timeframe"/>
<xs:enumeration value="textlabel"/>
<xs:enumeration value="textboxtype"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>我想要做的是能够将html嵌入到一个questionscript类型中。例如:
<itemsetting key="questionscript">this<html:b>is bold </html:b> </itemsetting>我试图处理复杂/简单的时间,但每次我都会得到一个无法解析的模式文件。一个指向正确方向的指针会非常有帮助。
发布于 2012-09-13 06:19:01
对Michael的回答进行扩展,如下所示:
<xs:element name="itemsetting">
<xs:complexType mixed="true">
<xs:sequence>
<xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="key" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="questionscript"/>
<xs:enumeration value="timeframe"/>
<xs:enumeration value="textlabel"/>
<xs:enumeration value="textboxtype"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>应该可以工作-假设http://www.w3.org/1999/xhtml是与html前缀相对应的超文本标记语言命名空间。
如果您有多个名称空间,或者您不想检查名称空间,请使用
. . .
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
. . . 请注意,这假设嵌入的HTML是格式良好的XML,例如,如果它不包含会使整个XML文件不可读的闭合标记,则无法使用模式。
发布于 2012-09-12 07:20:12
您的元素没有简单的内容:它包含子元素,这意味着它是复杂的内容(特别是<complexContent mixed="true">)。
如果希望允许HTML名称空间中的任何子元素,可以通过使用单个通配符粒子<xs:any namespace="..." minOccurs="0" maxOccurs="unbounded"/>定义内容模型来实现
https://stackoverflow.com/questions/12377756
复制相似问题