+[
+ local,
+ object,
+ uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaStringCollection : IDispatch
+{
+ [id(DISPID_VALUE), propget]
+ HRESULT item(
+ [in] long index,
+ [out,retval] BSTR* bstr);
+
+ [id(DISPID_SOM_LENGTH), propget]
+ HRESULT length(
+ [out,retval] long* length);
+
+ [id(DISPID_NEWENUM), hidden, restricted, propget]
+ HRESULT _newEnum(
+ [out,retval] IUnknown** ppunk);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaItemCollection : IDispatch
+{
+ [id(DISPID_VALUE), propget]
+ HRESULT item(
+ [in] long index,
+ [out,retval]ISchemaItem** item);
+
+ [id(DISPID_SOM_ITEMBYNAME)]
+ HRESULT itemByName(
+ [in] BSTR name,
+ [out,retval] ISchemaItem** item);
+
+ [id(DISPID_SOM_ITEMBYQNAME)]
+ HRESULT itemByQName(
+ [in] BSTR name,
+ [in] BSTR namespaceURI,
+ [out,retval] ISchemaItem** item);
+
+ [id(DISPID_SOM_LENGTH), propget]
+ HRESULT length(
+ [out,retval]long* length);
+
+ [id(DISPID_NEWENUM), hidden, restricted, propget]
+ HRESULT _newEnum(
+ [out,retval]IUnknown** ppunk);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaItem : IDispatch
+{
+ [id(DISPID_SOM_NAME), propget]
+ HRESULT name(
+ [out,retval] BSTR* name);
+
+ [id(DISPID_SOM_NAMESPACEURI), propget]
+ HRESULT namespaceURI(
+ [out,retval] BSTR* namespaceURI);
+
+ [id(DISPID_SOM_SCHEMA), propget]
+ HRESULT schema(
+ [out,retval] ISchema** schema);
+
+ [id(DISPID_SOM_ID), propget]
+ HRESULT id(
+ [out,retval] BSTR* id);
+
+ [id(DISPID_SOM_ITEMTYPE), propget]
+ HRESULT itemType(
+ [out,retval] SOMITEMTYPE* itemType);
+
+ [id(DISPID_SOM_UNHANDLEDATTRS), propget]
+ HRESULT unhandledAttributes(
+ [out,retval] IVBSAXAttributes** attributes);
+
+ [id(DISPID_SOM_WRITEANNOTATION)]
+ HRESULT writeAnnotation(
+ [in] IUnknown* annotationSink,
+ [out,retval] VARIANT_BOOL* isWritten);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchema : ISchemaItem
+{
+ [id(DISPID_SOM_TARGETNAMESPACE), propget]
+ HRESULT targetNamespace(
+ [out,retval] BSTR* targetNamespace);
+
+ [id(DISPID_SOM_VERSION), propget]
+ HRESULT version(
+ [out,retval] BSTR* version);
+
+ [id(DISPID_SOM_TYPES), propget]
+ HRESULT types(
+ [out,retval] ISchemaItemCollection** types);
+
+ [id(DISPID_SOM_ELEMENTS), propget]
+ HRESULT elements(
+ [out,retval] ISchemaItemCollection** elements);
+
+ [id(DISPID_SOM_ATTRIBUTES), propget]
+ HRESULT attributes(
+ [out,retval] ISchemaItemCollection** attributes);
+
+ [id(DISPID_SOM_ATTRIBUTEGROUPS), propget]
+ HRESULT attributeGroups(
+ [out,retval] ISchemaItemCollection** attributeGroups);
+
+ [id(DISPID_SOM_MODELGROUPS), propget]
+ HRESULT modelGroups(
+ [out,retval] ISchemaItemCollection** modelGroups);
+
+ [id(DISPID_SOM_NOTATIONS), propget]
+ HRESULT notations(
+ [out,retval] ISchemaItemCollection** notations);
+
+ [id(DISPID_SOM_SCHEMALOCATIONS), propget]
+ HRESULT schemaLocations(
+ [out,retval] ISchemaStringCollection** schemaLocations);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaParticle : ISchemaItem
+{
+ [id(DISPID_SOM_MINOCCURS), propget]
+ HRESULT minOccurs(
+ [out,retval] VARIANT* minOccurs);
+
+ [id(DISPID_SOM_MAXOCCURS), propget]
+ HRESULT maxOccurs(
+ [out,retval] VARIANT* maxOccurs);
+};
+
+[
+ object,
+ uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
+ dual,
+]
+interface ISchemaAttribute : ISchemaItem
+{
+ [id(DISPID_SOM_TYPE), propget]
+ HRESULT type(
+ [out,retval] ISchemaType** type);
+
+ [id(DISPID_SOM_SCOPE), propget]
+ HRESULT scope(
+ [out,retval] ISchemaComplexType** scope);
+
+ [id(DISPID_SOM_DEFAULTVALUE), propget]
+ HRESULT defaultValue(
+ [out,retval]BSTR* defaultValue);
+
+ [id(DISPID_SOM_FIXEDVALUE), propget]
+ HRESULT fixedValue(
+ [out,retval] BSTR* fixedValue);
+
+ [id(DISPID_SOM_USE), propget]
+ HRESULT use(
+ [out,retval] SCHEMAUSE* use);
+
+ [id(DISPID_SOM_ISREFERENCE), propget]
+ HRESULT isReference(
+ [out,retval] VARIANT_BOOL* reference);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaElement : ISchemaParticle
+{
+ [id(DISPID_SOM_TYPE), propget]
+ HRESULT type(
+ [out,retval] ISchemaType** type);
+
+ [id(DISPID_SOM_SCOPE), propget]
+ HRESULT scope(
+ [out,retval] ISchemaComplexType** scope);
+
+ [id(DISPID_SOM_DEFAULTVALUE), propget]
+ HRESULT defaultValue(
+ [out,retval] BSTR* defaultValue);
+
+ [id(DISPID_SOM_FIXEDVALUE), propget]
+ HRESULT fixedValue(
+ [out,retval] BSTR* fixedValue);
+
+ [id(DISPID_SOM_ISNILLABLE), propget]
+ HRESULT isNillable(
+ [out,retval] VARIANT_BOOL* nillable);
+
+ [id(DISPID_SOM_IDCONSTRAINTS), propget]
+ HRESULT identityConstraints(
+ [out,retval] ISchemaItemCollection** constraints);
+
+ [id(DISPID_SOM_SUBSTITUTIONGROUP), propget]
+ HRESULT substitutionGroup(
+ [out,retval] ISchemaElement** element);
+
+ [id(DISPID_SOM_EXCLUSIONS), propget]
+ HRESULT substitutionGroupExclusions(
+ [out,retval] SCHEMADERIVATIONMETHOD* exclusions);
+
+ [id(DISPID_SOM_DISALLOWED), propget]
+ HRESULT disallowedSubstitutions(
+ [out,retval] SCHEMADERIVATIONMETHOD* disallowed);
+
+ [id(DISPID_SOM_ISABSTRACT), propget]
+ HRESULT isAbstract(
+ [out,retval] VARIANT_BOOL* abstract);
+
+ [id(DISPID_SOM_ISREFERENCE), propget]
+ HRESULT isReference(
+ [out,retval] VARIANT_BOOL* reference);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaType : ISchemaItem
+{
+ [id(DISPID_SOM_BASETYPES), propget]
+ HRESULT baseTypes(
+ [out,retval] ISchemaItemCollection** baseTypes);
+
+ [id(DISPID_SOM_FINAL), propget]
+ HRESULT final(
+ [out,retval] SCHEMADERIVATIONMETHOD* final);
+
+ [id(DISPID_SOM_VARIETY), propget]
+ HRESULT variety(
+ [out,retval] SCHEMATYPEVARIETY* variety);
+
+ [id(DISPID_SOM_DERIVEDBY), propget]
+ HRESULT derivedBy(
+ [out,retval] SCHEMADERIVATIONMETHOD* derivedBy);
+
+ [id(DISPID_SOM_ISVALID)]
+ HRESULT isValid(
+ [in] BSTR data,
+ [out,retval] VARIANT_BOOL* valid);
+
+ [id(DISPID_SOM_MINEXCLUSIVE), propget]
+ HRESULT minExclusive(
+ [out,retval]BSTR* minExclusive);
+
+ [id(DISPID_SOM_MININCLUSIVE), propget]
+ HRESULT minInclusive(
+ [out,retval] BSTR* minInclusive);
+
+ [id(DISPID_SOM_MAXEXCLUSIVE), propget]
+ HRESULT maxExclusive(
+ [out,retval] BSTR* maxExclusive);
+
+ [id(DISPID_SOM_MAXINCLUSIVE), propget]
+ HRESULT maxInclusive(
+ [out,retval] BSTR* maxInclusive);
+
+ [id(DISPID_SOM_TOTALDIGITS), propget]
+ HRESULT totalDigits(
+ [out,retval] VARIANT* totalDigits);
+
+ [id(DISPID_SOM_FRACTIONDIGITS), propget]
+ HRESULT fractionDigits(
+ [out,retval] VARIANT* fractionDigits);
+
+ [id(DISPID_SOM_LENGTH), propget]
+ HRESULT length(
+ [out,retval] VARIANT* length);
+
+ [id(DISPID_SOM_MINLENGTH), propget]
+ HRESULT minLength(
+ [out,retval]VARIANT* minLength);
+
+ [id(DISPID_SOM_MAXLENGTH), propget]
+ HRESULT maxLength(
+ [out,retval]VARIANT* maxLength);
+
+ [id(DISPID_SOM_ENUMERATION), propget]
+ HRESULT enumeration(
+ [out,retval] ISchemaStringCollection** enumeration);
+
+ [id(DISPID_SOM_WHITESPACE), propget]
+ HRESULT whitespace(
+ [out,retval]SCHEMAWHITESPACE* whitespace);
+
+ [id(DISPID_SOM_PATTERNS), propget]
+ HRESULT patterns(
+ [out,retval] ISchemaStringCollection** patterns);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
+ dual,
+]
+interface ISchemaComplexType : ISchemaType
+{
+ [id(DISPID_SOM_ISABSTRACT), propget]
+ HRESULT isAbstract(
+ [out,retval] VARIANT_BOOL* abstract);
+
+ [id(DISPID_SOM_ANYATTRIBUTE), propget]
+ HRESULT anyAttribute(
+ [out,retval] ISchemaAny** anyAttribute);
+
+ [id(DISPID_SOM_ATTRIBUTES), propget]
+ HRESULT attributes(
+ [out,retval] ISchemaItemCollection** attributes);
+
+ [id(DISPID_SOM_CONTENTTYPE), propget]
+ HRESULT contentType(
+ [out,retval] SCHEMACONTENTTYPE* contentType);
+
+ [id(DISPID_SOM_CONTENTMODEL), propget]
+ HRESULT contentModel(
+ [out,retval] ISchemaModelGroup** contentModel);
+
+ [id(DISPID_SOM_PROHIBITED), propget]
+ HRESULT prohibitedSubstitutions(
+ [out,retval] SCHEMADERIVATIONMETHOD* prohibited);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
+ dual,
+]
+interface ISchemaAttributeGroup : ISchemaItem
+{
+ [id(DISPID_SOM_ANYATTRIBUTE), propget]
+ HRESULT anyAttribute(
+ [out,retval] ISchemaAny** anyAttribute);
+
+ [id(DISPID_SOM_ATTRIBUTES), propget]
+ HRESULT attributes(
+ [out,retval] ISchemaItemCollection** attributes);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
+ dual,
+]
+interface ISchemaModelGroup : ISchemaParticle
+{
+ [id(DISPID_SOM_PARTICLES), propget]
+ HRESULT particles(
+ [out,retval] ISchemaItemCollection** particles);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaAny : ISchemaParticle
+{
+ [id(DISPID_SOM_NAMESPACES), propget]
+ HRESULT namespaces(
+ [out,retval] ISchemaStringCollection** namespaces);
+
+ [id(DISPID_SOM_PROCESSCONTENTS), propget]
+ HRESULT processContents(
+ [out,retval] SCHEMAPROCESSCONTENTS* processContents);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaIdentityConstraint : ISchemaItem
+{
+ [id(DISPID_SOM_SELECTOR), propget]
+ HRESULT selector(
+ [out,retval] BSTR* selector);
+
+ [id(DISPID_SOM_FIELDS), propget]
+ HRESULT fields(
+ [out,retval] ISchemaStringCollection** fields);
+
+ [id(DISPID_SOM_REFERENCEDKEY), propget]
+ HRESULT referencedKey(
+ [out,retval] ISchemaIdentityConstraint** key);
+};
+
+[
+ local,
+ object,
+ uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
+ dual
+]
+interface ISchemaNotation : ISchemaItem
+{
+ [id(DISPID_SOM_SYSTEMIDENTIFIER), propget]
+ HRESULT systemIdentifier(
+ [out,retval] BSTR* uri);
+
+ [id(DISPID_SOM_PUBLICIDENTIFIER), propget]
+ HRESULT publicIdentifier(
+ [out,retval] BSTR* uri);
+};
+
+