从XSD生成c#类(xhtml.blkstruct.class)

本文关键字:xhtml blkstruct class XSD 生成 | 更新日期: 2023-09-27 18:11:10

我有一个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内容混合,所以像 <>之前& lt> & lt>等等之前例如

<>之前大家好& quot;下划线& quot;文字& quot

从XSD生成c#类(xhtml.blkstruct.class)

好吧,您没有在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部分作为文本处理会更好。