所以我计划制作能够通过XSD即时验证并在当前编辑位置显示IntelliSense的XML编辑器模块。
验证部分很简单,但我在创建IntelliSense时遇到了问题。
是否存在任何使这个IntelliSense变得简单的库,或者没有其他方法可以从头开始编写它?
答案 0 :(得分:1)
答案 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)