У меня есть следующий xsd:
<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.Заранее спасибо.