XSD xs:列出混淆

时间:2012-01-28 13:32:45

标签: xml xsd xml-parsing

有人可以向我解释使用xs:list数据类型吗?这可以很好地适合我的应用程序,因为.xml文件应该有一个列表(标签),我需要创建具有该标签的对象列表。我的问题是:我是否必须循环遍历列表中的项目(并在其中填充我的程序集合)或者是否有一些自动机制用XML列表填充集合?如果我必须手动完成,那么xs:list和由空格分隔的字符串之间的区别是什么?

我希望我设法解决了我的问题!

编辑:我使用Qt来解析XML。可能是SAX路线。

3 个答案:

答案 0 :(得分:2)

如果您使用xs:list,那么如果您使用代码生成器,它将被解析并公开为集合/数组数据结构。如果您只使用由空格分隔的字符串,那么它将作为常规字符串公开,您将负责解析。

区别仅在于您使用基于xsd的代码生成器。如果你使用像SAX或DOM这样的低级api进行解析,那么就没有区别了。

答案 1 :(得分:2)

由于您没有指明特定的处理器(例如JAXB或XSD.EXE等),因此不能具体...虽然,作为一般规则,列表(以及该事项的工会)支持不足。 / p>

在理想的世界中,工具是看它是一个列表,生成的代码(在XML到代码绑定方案中)应该为您提供一个字段,类型的数组,它将为您提供已经解析的内容。如果工具不足,你必须手工完成,没有差别。

但是,如果您也进行验证,那么至少列表中的每个项目都会为您进行整齐验证;如果没有它,你再次 - 你自己。

答案 2 :(得分:0)

实际上,班级QXmlQuery完全符合我的要求。 其方法bool QXmlQuery::evaluateTo ( QStringList * target ) const需要一系列xs:string值,并将target填入其中。