我有一个xsd文件,简化如下,其中一个元素引用了xhtml.BlkStruct.class。我试过xsd.exe和xsd2code尝试从中生成一个C#类,但我总是遇到错误。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xs:complexType name="test">
<xs:group ref="xhtml.BlkStruct.class"/>
</xs:complexType>
</xs:schema>
这是错误(对未声明/未声明的模型组的引用)
Error: Verweis auf eine nicht deklarierte Modellgruppe 'http://www.w3.org/1999/xhtml:xhtml.BlkStruct.class'.
有人可以帮我解决这里出了什么问题吗?
背景我试着XmlSerialize一个包含(简单)HTML / XML混合了sting内容的字符串,所以像
这样的东西<p>, <div>, etc
例如
Hello <u>underlined text</u> <b>bold text</b> world
答案 0 :(得分:0)
好吧,您没有在XSD的任何地方提供xhtml.BlkStruct.class
。您可能需要包含其定义才能在代码生成中取得成功。从http://www.w3.org/MarkUp/SCHEMA/下载文件并添加
<xs:include schemaLocation="xhtml-basic11-model-1.xsd">
但你真的需要一个强类型的DOM吗?更简单的解决方案是将测试字段定义为字符串,并将HTML包含为CDATA或编码的html。我的经验是,将XML与HTML混合始终是一个糟糕的设计选择,并且您将HTML部分视为文本会更好。