C# - 用于创建基于XSD的XML编辑器的库

时间:2011-04-06 15:27:26

标签: c# xml xsd intellisense

所以我计划制作能够通过XSD即时验证并在当前编辑位置显示IntelliSense的XML编辑器模块。

验证部分很简单,但我在创建IntelliSense时遇到了问题。

是否存在任何使这个IntelliSense变得简单的库,或者没有其他方法可以从头开始编写它?

5 个答案:

答案 0 :(得分:1)

http://www.codeproject.com/KB/cs/diy-intellisense.aspx

应该给你一个良好的开端。

答案 1 :(得分:1)

使用Visual Studio(Express,偶数)怎么样?它内置了XML Intellisense。

答案 2 :(得分:1)

您可以使用.NET类:XmlSchemaValidator

这两个关键方法是:GetExpectedParticles和GetExpectedAttributes,它们返回一个XmlSchemaObject。在使用这些之前,您需要通过验证所有前置和祖先元素和属性来设置验证器的上下文。

您还需要对从XmlSchemaObject派生的类使用方法,这些方法公开了后编译模式对象模型的各个部分。模型层次结构非常类似于您在XSD文件中找到的XML结构。您可能需要使用递归并且存在相当多的潜在陷阱,例如在处理替换组时,但是可以在大约2000行c#中完成合理的解决方案。

答案 3 :(得分:0)

试试Actipro's SyntaxEditor。它可用于WinForms,WPF和Silverlight,并包括对抽象语法树构造,常见类似IntelliSense的视觉提示等的支持。

答案 4 :(得分:0)

我们在其中一个项目中使用SyntaxBox。性能不是 好,有商业产品也相当便宜且质量很高。

此外,我相信Scintilla是最强大的免费语法着色编辑器组件。