首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Delphi和MsXML6来获取模式中的所有元素?

如何使用Delphi和MsXML6来获取模式中的所有元素?
EN

Stack Overflow用户
提问于 2011-09-08 12:39:02
回答 1查看 596关注 0票数 1

我有以下xsd:

代码语言:javascript
复制
<xs:schema xmlns="urn:bookroom-schema" targetNamespace="urn:bookstore-schema"

xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="book" type="xs:string" />

  <xs:complexType name="booktype">
    <xs:sequence>
      <xs:element name="author" type="xs:string" />
      <xs:element name="title" type="xs:string" />
      <xs:element name="price" type="xs:decimal" />
    </xs:sequence>
  </xs:complexType>`

  <xs:element name="publisher" type="xs:string" />
</xs:schema>

这就是程序。

代码语言:javascript
复制
procedure TForm1.AllElementsinSchema;

var oSchemaCache : XMLSchemaCache60;
    oSchema : ISchema;
    nsTarget: widestring;
    kk : integer;

begin
    oSchemaCache := coXMLSchemaCache60.Create;
    nsTarget := 'urn:bookstore-schema';
    oSchemaCache.add(nsTarget,'c:\book.xsd');
    oSchema := oSchemaCache.getSchema(nsTarget);

    for kk := 0 to pred(oSchema.elements.length) do
       showmessage('elements[' + inttostr(kk) + '] : ' + oschema.elements.item[kk].name);

end;

当我运行这个程序时,我得到了:

代码语言:javascript
复制
book
publisher    

我如何获得它(所有元素,包括子元素)?

代码语言:javascript
复制
book
author
title
price
publisher    

请指导我如何在Delphi中实现它。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-09-08 18:20:41

您还必须为oSchema.types编写一个循环,因为booktype显然是一个类型(确切地说是complexType ),而不是and元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7343165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档