3

有一个关于我计划实施的开源项目的问题(托管在 Codeplex 或 Sourceforge)。

简而言之,该项目将包含一个 XSD 文件,用于定义 XML 文件要遵循的架构,以及一些用于处理这些 XML 文件的 C# 代码。

但我不确定我应该给它什么许可证,尤其是 XSD 文件。该项目将主要是一个类库,所以我很想使用 LGPL,所以它可以被免费和专有软件使用。

但有一件事是,我不希望 XSD 文件能够被更改,因为我正在尝试为特定问题域的数据共享建立一个标准,而 imo 制定标准没有意义开源,还是这样?

还是应该将 XSD 作为一个单独的项目发布?不知道什么是正确的方法去...

感谢您就此事提供任何建议。

马修

4

1 回答 1

4

我认为你犯了一个大错误。事实上,我认为 XSD 文件应该在更自由的许可证下发布。

如果有人想创建一个专有版本的 HTML 并使用 fork Firefox 来使用它,他们只会为自己创建不必要的工作。在大多数情况下,它不会对 Mozilla 或 W3C 造成任何问题,因为没有人会关心或使用它。诚然,Netscape 和 Microsoft 都曾尝试添加专有的 HTML 扩展。微软最终意识到了浏览器互操作性的价值。网景没有持续足够长的时间让它变得重要。

如果您对模式设置限制性许可,您将降低任何人采用您的标准的可能性。许多开发人员受到他们可以在项目中使用的组件许可的限制。除非它对所有开发人员开放,否则制定标准有什么意义?

请记住,XSD 文件不是标准或模式。它只是一个标准的代表

例如,如果您有一个 XHTML XSD,则更改 XSD 不会更改 XHTML 模式。XHTML 模式由 W3C 发布的英文文档定义。改变 XHTML 模式的唯一方法是让 W3C 发布和更新文档的版本。如果您更改 XHMTL XSD,则您创建了不同模式的表示。

通过将 XSD 文件置于限制性许可下并不能保护您的架构,它只会迫使某人从头开始为他们的专有扩展编写一个新的 XSD 文件。

您是否考虑过您的标准可能存在缺陷,或者未涵盖您未考虑的某些用例?如果您的标准不能满足开发人员的所有需求,他们将不会使用它。你可以承诺将改进纳入标准,但如果你被公共汽车撞了怎么办?如果你是唯一可以合法改变标准的人,它最终会停滞不前,变得无关紧要。

于 2011-02-19T17:41:48.243 回答