<template>::= <types><editors>
<types>::= <type>+
<type>::= <property>+
<property>::= <name><type>
<editors>::= <editor>+
<editor>::= <name><type>(<textfield>|<form>|<list>|<pulldown>)+
<textfield>::= <label><property>[<editable>]
<form>::= <label><property><editor>
<list>::= <label><property><item-editor>
<pulldown>::= <label><property><option>+
<option>::= <value>
我们想到的一个可能的解决方案是创建具有XMLSerialization命名空间注释的POCO,例如:
[XMLRoot("template")]
public class Template{
[XMLElement("types")]
public Types types{
}
}
但是我想探索更多解决方案,你们有什么想法?
答案 0 :(得分:1)
如果您想自己实现,请查看Interpreter Design Pattern。
答案 1 :(得分:0)
如果要解析某些复杂性的特定输入,请使用ANTLR。请参阅C# instructions开始使用。