有一个关于我计划实施的开源项目的问题(将在Codeplex或Sourceforge上托管)。
简而言之,该项目将包含一个XSD文件,用于定义要遵守的XML文件的模式,以及一些C#代码,用于处理这些XML文件。
但是我不确定应该给它的许可证,尤其是XSD文件。该项目将主要是一个类库,因此我很想使用LGPL,因此它可以被免费和专有软件使用。
但有一件事是,我不希望XSD文件能够被更改,因为我试图建立一个特定问题域的数据共享标准,并且imo没有意义制作标准的开源,还是它?
或者我应该将XSD作为单独的项目发布?不确定什么是正确的方法......
感谢您就此事提出任何建议。
马修
答案 0 :(得分:4)
我认为你犯了一个大错误。事实上,我认为XSD文件应该在更自由的许可下发布。
如果有人想创建一个专有版本的HTML并使用Firefox来解决它,那么他们只会为自己创造不必要的工作。在大多数情况下,它不会给Mozilla或W3C带来任何问题,因为没有人会关心或使用它。当然,Netscape和Microsoft都曾尝试添加专有的HTML扩展。微软最终意识到浏览器互操作性的价值。 Netscape的持续时间不够长。
如果您在架构上加上限制性许可,则会降低任何人采用您的标准的可能性。许多开发人员受到他们可以在项目中使用的组件许可的限制。有标准的重点是什么,除非它对所有开发者开放?
请注意, XSD文件 不是标准或架构。它只是代表标准。
例如,如果您有XHTML XSD,则更改XSD不会更改XHTML架构。 XHTML模式由W3C发布的英文文档定义。更改XHTML架构的唯一方法是让W3C发布和更新文档版本。如果更改XHMTL XSD,则表示已创建不同模式的表示。
通过将XSD文件置于限制性许可证下无法保护您的架构,它只会强迫某人从头开始编写新的XSD文件以用于其专有扩展。
您是否认为您的标准可能存在缺陷,或者未涵盖您未考虑过的某些用例?如果您的标准无法满足开发人员的所有需求,他们将不会使用它。您可以承诺将改进纳入标准,但如果您被公共汽车撞到会发生什么?如果你是唯一可以合法改变标准的人,它最终会停滞不前并变得无关紧要。