1
我有以下的xsd:如何使用Delphi与MsXML6获取模式中的所有元素?
<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>
这是程序。
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;
当我跑我的程序:
book
publisher
我将如何得到这个(包含子元素的所有元素)?
book
author
title
price
publisher
请指导我如何在Delphi中做到这一点。提前致谢。