1、Amendment 3:2000 toNational Standard of CanadaCAN/CSA-ISO/IEC 10728-95Amendment 3:1996 to International Standard ISO/IEC 10728:1993has been adopted without modification as Amendment 3:2000 toCAN/CSA-ISO/IEC 10728-95. This Amendment was reviewed by theCSA Technical Committee on Information Technology
2、 (TCIT) under thejurisdiction of the Strategic Steering Committee on InformationTechnology and deemed acceptable for use in Canada. December 2000Reference numberISO/l EC 10728: 1993/Amd.3: 1996(E)ISO/IEC 10728: 1993/Amd.3: 1996(E) Foreword IS0 (the International Organization for Standardization) and
3、 IEC (the Inter- national Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of IS0 or IEC participate in the development of International Standards through technical committees established by the respective organization to deal w
4、ith particular fields of technical activity. IS0 and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with IS0 and IEC, also take part in the work. In the field of information technology, IS0 and IEC h
5、ave established a joint technical committee, ISO/IEC JTC 1. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote. Amendmen
6、t 3 to International Standard ISO/IEC 10728:1993 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 21, Open systems interconnection, data management and open distributed processing. 0 ISO/IEC 1996 All rights reserved. Unless otherwise specified, no part
7、 of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and micro- film, without permission in writing from the publisher. ISO/IEC Copyright Office l Case postale 56 l CH-1211 Geneve 20 l Switzerland 0 ISO/IEC ISO/IEC 10728: 19
8、93/Amd.3: 1996(E) Information technology - Information Resource Dictionary System (IRDS) Services Interface AMENDMENT 3: CORBA IDL binding Page v Contents Add a new entry to the Table of Contents as follows: “Annex E - CORBA IDE binding” Page 1 Clause 1 Add a new sentence in Clause 1 paragraph 2, be
9、fore the last sentence. “A language binding for CORBA IDL is provided in Annex E.” Page 5 Subclause 4.4 Add a new sentence in subclause 4.4. “Data structures for use with COMA IDL are defined in Annex E.” Page 5 Subclause 4.5 Add a new sentence in subclause 4.5. “CORBA IDL b d m mgs for the services
10、 are provided in Annex E.” Page 71 Subclause 8.1 Amend the first sentence of the NOTE in clause 8.1 to read: “For the Pascal language binding specified in this clause, the C language binding specified in Annex C, the Ada language binding specified in Annex D and the CORBA IDL binding specified in An
11、nex E, enumerated types are . . I Page 75 Clause 9 Amend the first sentence of the second paragraph of Clause 9 to read: “The service formats are specified in this clause using IS0 standard Pascal. Alternative service formats for use with the C language binding are specified in Annex C, for the Ada
12、language binding in Annex D and the CORBA IDE, binding in Annex E.” 1 ISO/IEC 10728: 1993/Amd.3: 1996(E) Add a new Annex E as follows: 0 ISO/IEC 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3: 1996(E) Annex E (normative) CORBA IDL Binding The IRDS Services Interface language bindings for the CORBA Interface De
13、finition Language are presented in the form of a .idl file as set out in clause E.4 below. E. 1 Strategy for the Language Binding In this binding the data names and data structures defined in clause 8 have been adhered to except where the CORBA IDL does not provide an appropriate construct. In this
14、binding the proccdurc names and their parameters defined in clause 8 have been adhered to except where the CORBA IDL does not provide an appropriate construct. #define statements have been used 1 accept a as an array leng th specifier. or various limits instead of because CORBA IDL compilers will no
15、t Use of this language bindin, 7 requires the USC of a CORBA IDL compiler that conforms to ISO/IEC Editor to insert reference level (Editor to insert level identification). E. 2 Class Architecture The following class architecture is proposed. Note that these are only the classes that wed to be visib
16、le across the CORBA intcrfacc. A finci grained class structure may be appropriate in future, but that this probably ought to be a starting point. Moving to further classes such as IRDDefinition, IRD, WorkingSet and IRDObjcct would be a natural next step and not inconsistent with the objects defined
17、. below. Class Services 10728 Clause Refer ence IrdsServiccsIntcrfaccPr-occssoi IrdsCreateIRDDefinition IrdsDropIRDDefinition IrdsOpen 9.1.1 9.1.2 9.1.3 IrdsScssion IrdsPrcpare 9.1.4 IrdsCommit 9.1.5 IrdsRollback 9.1.6 IrdsClose 9.1.7 IrdsGetDiagnostics 9.1.8 IrdsSetContext 9.2.1 IrdsAddObject 9.2.2
18、 IrdsOpenCursoi 9.2.3 ISO/IEC 10728: 1993/Amd.3: 1996(E) 0 ISO/IEC Class Name IrdsSession (continued) Services IrdsRetrieveObject 9.2.4 IrdsModifyObject 9.2.5 IrdsDeleteObject 9.2.6 IrdsDeclassifyObject 9.2.7 IrdsReclassify 9.2.8 IrdsCloseCursor 9.2.9 IrdsCreateWorkingSet 9.2.10 IrdsDropWorkingSet 9
19、.2.1 I IrdsModifyContentStatus 9.2.12 IrdsCreateReferencePath 9.2.13 IrdsModifyReferencePath 9.2.14 IrdsDropReferencePath 9.2.15 IrdsCreateIRD 9.3.1 IrdsDropIRD 9.3.2 IrdsDeactivateIRD 9.3.3 IrdsReac tivateIRD 9.3.4 IrdsVal idateIRDSchemaGroup 9.3.5 10728 Clause Reference E.3 General Rules 1. Those
20、data names in E.4 below that also appear in Clause 8 shall have the same meaning as is defined in Clause 8. The same rules for the use of separators as defined in Clause 8 shall apply. 2. The function and parameter names in E.4 below shall have the same meaning as is defined in Clause 9. 3. The Serv
21、ice Return Codes returned shall be those defined by Clause 9 and Annex A and they shall have the same meaning. 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3:1996(E) 4. The fi,llowing mappings fi-om SQL data types to CORBA IDL data types have been used: SQL DATA TYPE CORBA IDL DATA TYPE CHARACTER CHARACTER VAR
22、YING NATIONAL CHARACTER mTIONAL CHARACTERVARYING D3UBLE PRECISION FLOAT LIINTEGER bsJwLLINT NUMEEU-C DEclMAL DATE TIME TIMESTW lLIJmTRs?AL string /* See 8.2.1 */ string /* See 8.2.1 */ string /* See 8.2.1 *l string /* See 8.2.1 */ float double float long short long long Ird.sI t2 */ /* IrdsVxLim is
23、used in 8.2.2 below * / ISO/IEC 10728: 1993/Amd.3: 1996(E) 0 TSO/IEC /* Clause 8.1.2 */ const / * refer short IrdsTextLim = 30728 / * t3 */ Note that although no use is made of IrdsTextLim in this language binding, it is included so that a program may to the value to test the length of a string. */
24、/* Clause 8.1.3 - these definitions are used in 8.2.3 below */ / * const const const const The numeric values in this clause will be replaced nl, n2, n3, n4 as in clause 8.1.3 in the final version of this Annex. Actual values are retained in this draft to facilitate testing of the text by corrrpilat
25、ion against a range of cowilers. *l short IrdsSessIdLim = 255; / * nl*/ /* IrdsSessIdLim used in 8.2.3 below * / short rdsCu.rIdLirn = 255; / * n2 * / /* IrdsCurIdLim used in 8.2.3 below */ short IrdsIrrp?DicNameLen = 255; / * n3 */ /* IrdsmDicNameLen used in 8.2.3 below */ short IrdsKeyLen = 255; /
26、 * n4 */ /* IrdsKqLen used in 8.2.1 below */ /* Clause 8.1.4 Data Types */ typedefenum 1 IrdsDataTypeChar, /* SQLCHARACTER / IrdsData?LpeCharVar, /* SQL CHARACTER VARYING* */ IrdsData?LpeNatChar, /* SQL NATIONAL CHARACTER */ IrdsDataTypeNatCharVar, /* SQL NATIONAL CHARACTER VARYING */ IrdsDataTypeRe
27、al, /* SQL REAL * / IrdsIBtaTypeIBuble, /* SQL IBUBLE PRECISION */ IrdsDataTypeFloat, /* SQL FLQAT * / Ird.sData?LpeInteger, /* SQL INTEGER * / IrdsDataTypeSmallint, /* SQLSMALLINT * / IrdsI 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3: 1996(E) / * Clause 8.1.5 IRD Content Status Classes */ typedef enum Irds
28、DcsClsUcntl, IrdsIXsClsCntl, IrdsDcsClsArch /* Uncontrolled /* Controlled /* Archived * / * / * / IrdsDcsCls; / * Clause 8.1.6 Close Type parameter */ typedef enurn RequestIrdsCommit, RequestIrdsRollback /* COMMlT * / /* ROLLBACK * / IrdsClose?Lpe; / * Clause 8.2.1 Colurm data types */ typedef struc
29、t 1 char Year4; char Sepl; char Month2; char Sep2; char Day2; IrdsDate; typedef struct char Hour2; char Sepl; char timte2; char Sep2; char Second2; char Sep3; char Fraction3; 1 IrdsTime; typedef struct IrdsDate Date; CM SepT; IrdsTime Time; IrdsTirnestamp; typedef struct Char ysra; Char SepI; IrdsTi
30、me Tb; IrdsInterval; ISO/IEC 10728: 1993/Amd.3: 1996(E) 0 ISO/IEC typedef char IrdsKeyIrdsKeyLen; /* IrdsKeyLen is defined in 8.1.3 above */ /* Clause 8.2.2 Object Names */ typedef char IrdsSQLName128; / * 128 is set by ISO/IEC 9075:1992 database Language SQL */ typedef char IrdsNameIrdsNameLim; /*
31、IrdsNameLim is defined in 8.1.1 above */ typedef char IrdsVarNameIrdsVarLim; /* IrdsVarLim is defined in 8.1.1 above */ typedef char UserIdIrdsNameLirn; /* IrdsNameLim is defined in 8.1.1 above */ /* Clause 8.2.3 Control Identifiers */ typedef char IrdsSessIdIrdsSessIdLim; / 3; IrdsSessIdLim is defi
32、ned in 8.1.3 above */ typdef char IrdsCurIdIrdsCurIdLim; / * IrdsCurIdLim is defined in 8.1.3 above */ typdef char IrdsIrrpDicNameIrdsIrrpDicNmeLen; / * IrdsImpDicNameLen is defined in 8.1.3 abve */ /* Clause 8.2.4 Diagnostics Area */ typedef struct char StateClass2; char StateSuWlass3; IrdsState; /
33、* IrdsState is used in 8.2.5 below */ typedef struct short IrdStateSeq; IrdsState IrdRetumedState; IrdsSQLName IrdConstraintSchema; IrdsSQLName IrdConstraintName; IrdsSQLJYame IrdSchame; IrdsSQLName IrdTableName; short IrdColumnNkber; IrdsSQLJ%me IrdColumnName; IrdsStateRec; / * IrdsStateRec is used
34、 in the Get Diagnostcs Service in 9.1.8 below * / 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3: 1996(E) / * Clause 8.2.5 Service Return Code */ typedef struct short NumStates; IrdsState State; IrdsRetCode; / * Clause 8.2.6 Column List parameters */ / * In the C binding the column list actually is a list. In
35、this IDL binding the list is a sequence. * / typedef union IrdsDataTypeUnion switch (IrdsData?Lpe) case case case case case case case case case case case case case case IrdsDataTypeChar: Ird.sData?LpeCharVar: IrdsDataType.NatChar: IrdsDataTypNatCharVar: Ird.sIX * / struct IrdsSingleColSpec Ix-dsSQL
36、string ColValText; double ColValReal; float ColValFloat; long ColValLmgInteger; short ColValShortInteger; long ColValLongNimeric; IrdsDate ColValDate; IrdsTime ColValTime; IrdsTimestamp ColValTimestm; IrdsInterval ColValInterval; string ColValIrdsKey; typedef struct short Char sequence IrdsColList;
37、ISO/IEC 10728: 1993/Amd.3: 1996(E) interface IrdsServicesInterfaceProcessor / * Clause 9.1.1 Create IRD Definition Service * / short IrdsCreateIRDDefinition ( in UserId IrdsUser, in IrdsImpDicName IrdDefName, out IrdsSessId CurrSessId, out IrdsRetCode RetCode ; /* Clause 9.1.2 Drop IRD Definition Se
38、rvice */ short IrdsDropIRDEfinition ( in UserId in IrdsImpDicName out IrdsRetCode IrdsUser, IrdIXfName, RetCode ; /* Clause 9.1.3 Open IRDS Service */ short IrdsOpen ( in UserId IrdsUser, in IrdsIrrpDicName IrdDefName, in IrdsName IrdDicName, in boolean WillUpdate, out IrdsSessId CurrSessId, out Ird
39、sRetCode RetCode ; 0, ISO/IEC l /I* End of definition of interface IrdsServicesInterfaceProcessor */ 10 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3: 1996(E) interface IrdsSession /* Clause 9.1.4 Prepare Service */ short IrdsFrepare ( ; out IrdsRetCode /* Clause 9.1.5 Commit Service */ short IrdsCmmit out Ir
40、dsRetCode ) ; /* Clause 9.1.6 Rollback Service short IrdsRollback * / out IrdsRetCode /* Clause 9.1.7 Close IRDS Service * short IrdsClose in IrdsCloseType out IrdsRetCode RetCode RetCode RetCode Close?Lpe, RetCode /* Clause 9.1.8 GetDiagnostics Service */ short IrdsGetDiagnostics in short StateNum,
41、 out IrdsStateRec StateRec, out IrdsRetCode RetCode ; /* Clause 9.2.1 Set Context Service */ short IrdsSetContext ( in IrdsName SessWkgSetNarme, in IrdsName SessWkgSetverId, in boolean WillUpdate, out IrdsRetCode RetCode 11 ISO/IEC 10728: 1993/Amd.3: W!M(E) 0 ISO/IEC /* Clause 9.2.2 Add Object Servi
42、ce */ short IrdsAddObject ( in IrdsName 0W /* Clause 9.2.6 Delete Object Service */ short IrdsDeleteObject in IrdsCurId ObjCurId, out IrdsRetCode RetCode 12 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3: 1996(E) /* Clause 9.2.7 IrdsDeclassifyObject Service */ short IrdsDeclassifyObject ( in IrdsCurId ObjCurId
43、, out IrdsRetCode RetCode l* Clause 9.2.8 IrdsReclassifyObject Service */ short IrdsReclassifyObject ( in IrdsCurId ObjCurId, in IrdsName NebjQpe, in IrdsColList NaCols, out IrdsRetCode RetCode ; /* Clause 9.2.9 Close Cursor Service */ short IrdsCloseCursor ( in IrdsCurId out IrdsRetCode 1 ; ObjCurI
44、d, RetCode /* Clause 9.2.10 Create Working Set Service */ short IrdsCreateWorkingSet in IrdsName NemkgSetName, in IrdsName NevMkgSetVerId, in IrdsName NeWIXs, in IrdsName BasisWkgSetName, in IrdsNarw BsisWkgSetVerId, in boolean Versionable, out 1rdsRetCod.e RetCode /* Clause 9.2.11 Drop Working Set
45、Service */ short IrdsDropWorkingSet ( in IrdsName WkgSetName, in IrdsName WkgSetVerId, out IrdsRetCode RetCode ) ; 13 ISO/IEC 10728: 1993/Arnd.3: 1996(E) 0 ISO/IEC / * Clause 9.2.12 Modify Content Status Service */ short IrdsMcdifyContentStatus ( in IrdsNxne WkgSetName, in IrdsNarrz WkgSetVerId, in
46、IrdsName NewEs, out IrdsRetCode RetCode / * Clause 9.2.13 Create Reference Path Service */ short IrdsCreateRefPath in IrdsNarrte ToWkgSetName, in IrdsNarre ToWkgSetVerId, out IrdsRetCode RetCode ; / * Clause 9.2.14 Modify Reference Path Service */ short IrdsModifyRefPath ( in IrdsName OldToWkgSetNam
47、e, in IrdsName OldToWkgSetVerId, in IrdsName NevKlZoWkgSetName, in IrdsName NevEoWkgSetVerId, out IrdsRetCode RetCode /* Clause 9.2.15 Drop Reference Path Service */ short IrdsDropRefPath ti. IrdsName ToWkgSetName, in IrdsNarte ToWkgSetVerId, out IrdsRetCode RetCode ; l* Clause 9.3.1 Create IRD Serv
48、ice */ short IrdsCreateIRD ( in IrdsImpDicName IrdExtemalName, in IrdsName IrdDicName, in IrdsName SchemaGroupName, mt IrdsRetCode RetCode 14 0 ISO/IEC ISO/IEC 10728: 1993/Amd.3: 1996(E) /* Clause 9.3.2 Drop IRD Service */ short IrdsDropIRD ( in D IrdDicName, RetCode /* Clause 9.3.4 Reactivate IRD S
49、ervice */ short IrdsReactivateIRD in IrdsName IrdDicName, in IrdsName SchemaGroupName, out IrdsRetCode RetCode /* Clause 9.3.5 Validate IRD Schexna Group Service */ short IrdsValidateIRDSchemaGroup ( in IrdsName SchemaGroupName, mt IrdsRetCodR RetCode ; 1 ; /* End of definition of interface IrdsSession */ ; /* End of definition of module irds */ 15 This page intentionally left blank This page intentionally left blank ISO/lEC 10728:1993Amd.3:1996(E) 0 lSO/IEC ICS 35.060 Descriptors: data processing, information interchange, in