我创建了一个结构,它将存储我使用Nokogiri从XML解析的一些信息,以及在将结构导出到Excel并且用户编辑'spec'之后输入的一些信息。我需要在XML中的信息是第一个属性:type,另一个是用户在导出到Excel后将编辑的信息。
class Spec < Struct.new(
:trace-id,
:ip-pdm, # exact IP name
:ip, # human consumable IP name
:parameter,
:symbol,
:min,
:max,
:typ,
:unit,
:notes,
:type,
:guaranteed-by, # acceptable values are 'ATE','BENCH','PROXY','DESIGN','CONSTRUCTION','SIMULATION'
:en-gate,
:en-final_test,
:en-probe,
:un-testable,
:disposition-required,
:pe-notes,
:te-notes,
:de-notes,
:qa-notes,
:ate-limits_reversed,
:last_revised );
我的问题的第二部分是,是否可以预先定义某些元素的有效值,例如:guarantee-by。正如您在代码注释中所看到的,我们只希望在用户输入数据时输入某些值。一般用户会在excel中输入数据,但是一些超级用户可能会通过Ruby创建结构。
提前thx!答案 0 :(得分:1)
嗯,可以使用XSD架构来验证xml数据。 快速搜索会为此页面提供您使用的库:
答案 1 :(得分:0)
不使用Structs,但您可以使用例如virtus gem来创建一些带验证的基本模型。