我正在创建一种可扩展的类XML语言,它将在C#中解析。当用户创建新标签时,他们需要能够指定允许的位置。即,它可以包含在哪些元素中,无论它是否需要出现在特定元素之前或之后,或者在何处。我希望尽可能多的灵活性。举个例子:
grid {
row {
if(x='y') {
"hello"
} else {
"world"
}
}
}
“行”只能出现在“网格”中,而“elses”只能出现在“ifs”中。
我想我可以使用类似jQuery的语法,但我不知道它会如何工作。查询grid > row
将选择网格中包含的所有行,但是我可以使用相同的语法来指示只允许某行出现在那里吗?也许我可以运行选择器,如果有问题的元素不包含在结果集中,那么它是不允许的?
对于指定允许元素位置的干净方式的任何建议表示赞赏。