XSD xs:列表混乱

发布于 2024-12-29 15:16:55 字数 264 浏览 0 评论 0原文

谁能向我解释一下 xs:list 数据类型的用法吗?这非常适合我的应用程序,因为 .xml 文件应该有一个(标签)列表,我需要使用该标签创建对象列表。我的问题是:我是否必须循环遍历列表中的项目(并用它们填充程序内的集合),或者是否有某种自动机制可以用 XML 列表填充集合?如果我必须手动执行此操作,xs:list 和由空格分隔的字符串有什么区别?

我希望我能解决我的问题!

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

Could anyone please explain to me the use of the xs:list datatype? This could fit nicely for my application, as the .xml file should have a list (of labels) that I need to create list of object with that label. My question is: Do I have to loop through the items of the list (and fill a collection inside my programm with them) or is there some automated mechanism that fills a collection with a XML list? If I have to do it manually, whats the difference between a xs:listand a string separated by whitespaces?

I hope I managed to get my question across!

EDIT: Im using Qt to parse XML. Probably the SAX route.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妳是的陽光 2025-01-05 15:16:55

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

区别仅在于您使用基于 xsd 的代码生成器时。如果您使用 SAX 或 DOM 等低级 api 进行解析,则没有区别。

If you use xs:list then it will be parsed and exposed as a collection/array data structure if you are using code generators. If you just use a string separated by white spaces then it will be exposed as a regular string and you will be responsible for parsing.

The difference is only if you are using xsd based code generators. If you are parsing using low-level api's like SAX or DOM then there is no difference.

晒暮凉 2025-01-05 15:16:55

由于您没有指示特定的处​​理器(例如 JAXB 或 XSD.EXE 等),因此无法具体...尽管作为一般规则,列表(以及与此相关的联合)的支持很差。

在理想的情况下,工具会看到它是一个列表,并且生成的代码(在 XML 到代码绑定场景中)应该为您提供一个字段、数组类型,这将为您提供已经解析的内容。如果工具不够,你就必须手动完成,这没有什么区别。

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

Since you're not indicating a specific processor (e.g. JAXB or XSD.EXE or etc.) one cannot be specific... Although, as a general rule, list (and unions for that matter) are poorly supported.

In an ideal world, tools are to see it is a list, and the generated code (in an XML to code binding scenario) should provide you with a field, type of array, that would give you the things parsed already. Where tools fall short, you have to do it by hand, no difference there.

However, if you also do validation, then at least each item in the list will be neatly validated for you; whereas without it, you're - again - on your own.

痞味浪人 2025-01-05 15:16:55

实际上,QXmlQuery 类正是我想要的。
其方法bool QXmlQuery::evaluateTo (QStringList * target) const 需要一系列xs:string 值并用它们填充target

Actually, the class QXmlQuery does exactly what I wanted.
Its method bool QXmlQuery::evaluateTo ( QStringList * target ) const requires a sequence of xs:string values and fills target with them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文