Hi Folks, I need to perform basic filtering on data, such as:
I need to create a language (or use some subset of an existing language) for expressing filter rules. The language must be usable by domain experts who aren’t necessarily computer savvy. The input data comes in a variety of different formats
– some input data will be formatted as CSV, some input data will be formatted as vCard, some input data will be formatted as iCalendar, etc.. Input data may be text or binary. In other words, the input data is not necessarily XML. As I see it, there are three approaches to expressing filter rules, as exemplified by XSLT, CSS, and DFDL. XSLT Approach to Expressing Filter Rules
In this approach filter rules are expressed in a filter rules document. The language used to express filter rules must provide a navigation/path language for navigating through the data to identify the data item to be filtered. XSLT uses
this approach. Here’s a graphic that illustrates the approach: CSS Approach to Expressing Filter Rules
In this approach filter rules are expressed in a filter rules document. Each data item in the input data has a unique identifier. Each filter rule specifies a unique identifier and the filter rule. CSS uses this approach.
Here’s a graphic that illustrates the approach: DFDL Approach to Expressing Filter Rules
In this approach the logical structure of the input data is described by an XML Schema and filter rules are expressed in annotations in the XML Schema. DFDL uses this approach. Here’s a graphic that illustrates the approach: QUESTION #1: I think these three approaches are fundamentally different. Do you agree? QUESTION #2: Are there other approaches which are fundamentally different than the three listed above? Let’s now look at the advantages and disadvantages of each approach. XSLT Approach to Expressing Filter Rules
Advantages
Disadvantages
CSS Approach to Expressing Filter Rules
Advantages
Disadvantages
DFDL Approach to Expressing Filter Rules
Advantages
Disadvantages
QUESTION #3: Have I missed any advantages/disadvantages? /Roger |