0

我有一个 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> 等

例如

    你好<u>带下划线的文字</u> <b>粗体</b>世界
4

1 回答 1

0

好吧,您没有提供xhtml.BlkStruct.classXSD 中的任何位置。您可能需要包含其定义才能成功生成代码。从http://www.w3.org/MarkUp/SCHEMA/下载文件并添加一个

<xs:include schemaLocation="xhtml-basic11-model-1.xsd">

但是你真的需要一个强类型的 DOM 吗?一个更简单的解决方案是将您的测试字段定义为字符串,并将您的 HTML 包含为 CDATA 或编码的 html。我的经验是,将 XML 与 HTML 混合始终是一个糟糕的设计选择,将 HTML 部分视为文本会更好。

于 2015-09-03T23:40:28.923 回答