These release notes contain a summary of new features and enhancements, late-breaking product issues, and bug fixes. The information relating to the most recent release appears first in this document. Following sections contain release notes for all relevant prior releases. The notes for all prior releases are applicable to the most recent release as well. For change logs or other information on previous releases, please contact Technical Support.
Rogue Wave products may contain undocumented interfaces. These interfaces are not supported for general use and may be changed or removed from release to release.
The version of this document in the product distribution is a snapshot at the time the product distribtion was created. Additional information may be added after that time because of issues found during distribution testing or after the product is released. To be sure you have the most up-to-date information, see the version of this document on the Rogue Wave web site: https://docs.roguewave.com/en/hydraexpress/current
This release adds support for numerous updates to major supported operating systems and compilers. Please see the Support Matrix at https://docs.roguewave.com/en/hydraexpress/current/Supported_Platforms.pdf for details.
SourcePro Users: HydraExpress 2020 is certified with SourcePro Version 2020.
attribute
or complexType
was named "Attribute"
. (HYEXPRESS-4213)SourcePro Users: HydraExpress 2019 is certified with SourcePro Version 2018.2.
The rwsfserver
script now includes an optional --wait
flag. When specified with the start
action, rwsfserver
waits until the agent has stopped before returning. (HYEXPRESS-3987)
WSDL files containing an XML schema definition with either multiple namespace attributes on a single element, or a single namespace attribute on a xsd:include
or xsd:import
element, no longer fail during rwsfgen
code generation. (HYEXPRESS-4007)
Both SSL 2.0 and SSL 3.0 have been deprecated and are no longer considered secure. To prevent secure communication from potentially falling back to these protocols, they have been disabled. (HYEXPRESS-4086)
Remapping an XML element name that has the same name as the XML Schema Definition (XSD) file will no longer be ignored during rwsfgen
code generation. (HYEXPRESS-4122)
XML Binding now embeds common schema files, avoiding a network query when those files are imported or included. (HYEXPRESS-4218)
SourcePro Users: HydraExpress 4.9.2 is certified with SourcePro Version 2016.
Added an rwsf:httpSessionIdGenerator
parameter on the servlet handler class ServletMessageInfoHandlerImp
to register a custom session ID generator. (HYEXPRESS-3952)
Enhanced the security of the default session ID generator by both increasing the session ID string length and employing more robust methods of obtaining unique strings. (HYEXPRESS-4019)
Fixed a bug in which unmatched quotes in SOAPAction headers caused the Agent to halt. Now, an HTTP 400 error is returned. (HYEXPRESS-4035)
SourcePro Users: HydraExpress 4.9.1 is certified with SourcePro Version 2016.
SourcePro Users: HydraExpress 4.9 is certified with SourcePro Version 2016.
-minimizeincludes
code generator option to eliminate unnecessary include directives from generated header files. This option can be used to avoid circular header dependencies. (HYEXPRESS-3582)SourcePro Users: HydraExpress 4.8 is certified with SourcePro Version 13.1.
Resolved a compilation error that occurred when the pattern facet included "
. (HYEXPRESS-3400)
Resolved a java.lang.StackOverflowError
that occurred in code generation when a schema type contained an element of a type that extended from itself. (HYEXPRESS-3407)
Resolved a circular dependency in generated header files that resulted in a compilation failure. (HYEXPRESS-3407)
Resolved issues relating to use of NaN
with the constraining facets minInclusive
, maxInclusive
, minExclusive
, and maxExclusive
for types xsd:float
and xsd:double
. (HYEXPRESS-3450)
SourcePro Users: HydraExpress 4.7.1 is certified with SourcePro Version 12.5.
Certain HTTPS transport properties could not be set after HttpsTransport had been initialized. (HYEXPRESS-3201)
Adds transport parameters delay-payload
and delay-payload-timeout
to utilize delayed payload transport using request header Expect: 100-continue
. (HYEXPRESS-3228)
A client can potentially wait unnecessarily after sending an Expect: 100-continue
header with the request. (HYEXPRESS-3228)
Circular reference is generated when a schema type derives from another schema type with the same name, but in a different namespace. (HYEXPRESS-3210)
Fractional values are being validated improperly. (HYEXPRESS-3250)
SourcePro Users: HydraExpress 4.7.0 is certified with SourcePro Version 12.5.
ServiceIdentifier should be removed from the code base. (HYEXPRESS-2089)
RWSF:doEscape
handler property does not work as documented. (HYEXPRESS-2617)
Reconnect fails using OpenSSL and standalone server (HYEXPRESS-2719)
CPU utilization goes to 100% using OpenSSL and standalone server (HYEXPRESS-2720)
FD_SETSIZE
limits the number of file descriptors that select can access to 1024 (HYEXPRESS-2742)
Generated code may fail to compile because of names that conflict with C++ keywords. (HYEXPRESS-2747)
HydraExpress 4.6 is slower than LEIF 2.5 when marshalling (HYEXPRESS-2763)
Unmarshaling nillable element with minOccurs
of 1
fails if before other element (HYEXPRESS-86)
Minimize serialization of xsi:type
(HYEXPRESS-89)
Code generated with stl accepts invalid values for boolean data type. (HYEXPRESS-121)
Improve error message returned on unmarshal of invalid XML (HYEXPRESS-143)
The xsi:type
is incorrectly marshaled as the base type for simpleType
elements. (HYEXPRESS-209)
Do not include prefix for implicit namespace (HYEXPRESS-215)
XmlValidator fails to correctly validate some decimal numbers (HYEXPRESS-1059)
Nillable element in a choice is not unmarshaled correctly (HYEXPRESS-2608)
rwsfgen
results in ERROR: null
(HYEXPRESS-2667)
For a group that contains a sequence with a choice, Hydra doesn't generate valid code. (HYEXPRESS-2668)
Multiple constraints generate duplicate code identifiers (HYEXPRESS-2694)
Using the -sourcepro
option xsd:unique
generates code using std()
on an std::string
assigned to an std::string
. (HYEXPRESS-2695)
Incorrect code generation for uniqueness constraints within an element maxOccurs = unbounded
. (HYEXPRESS-2715)
XmlValidator
fails to properly evaluate constraints when data is non-ASCII. (HYEXPRESS-2974)
SourcePro Users: HydraExpress 4.6.0 is certified with SourcePro Version 11.0.
The SIGPIPE
signal is now ignored when the HTTP connector is used. This prevents a crash when data is written to a reset socket. (HYEXPRESS-187)
Charset encoding in XmlReader is now more stable and efficient. (HYRUNTIME-1045)
The configured log directory will be created when the log file is opened, if it is not already present. (HYRUNTIME-1496)
The .
character is now allowed in the path specified for the LogRotatingFileWriter. (HYRUNTIME-1580)
All connector shutdown functions are now properly called when a problem occurs during Agent initialization and startup. (HYRUNTIME-1694)
The HTTP connector will now try to send all pending responses in the buffer before shutting down the connector. (HYRUNTIME-1778)
Dates and other text with dashes will now parse correctly when they appear inside XML comments. (HYRUNTIME-2365)
HTTP messages now have newlines \n
parsed correctly. (HYRUNTIME-2398)
HTTP messages now have NULLs \0
parsed correctly. (HYRUNTIME-2665)
XmlUtils::convertCharset()
is now faster at converting large buffers. (HYRUNTIME-2733)
Logger::wouldLog()
now returns correct value when a LogSplitter is used. (HYRUNTIME-2751)
Chunked messages through AJP13 (Apache Connector) now work properly. (HYRUNTIME-2792)
The Agent will now correctly read all messages stored in its internal read buffers, even if the message size doesn't exceed the buffer. (HYRUNTIME-2830)
getContentLength()
on a ServletRequest will now return the actual content length (or "-1"
if not found). Calling getContentLength()
on an HttpServletReqeust will now return the value of the "Content-Length"
header (or "-1"
if the header is not present). (HYEXPRESS-1045)MessageAttachment::getUniqueId()
will now return correct uniqueId. (HYEXPRESS-73)
Exceptions thrown by webservices now create valid XML. (HYEXPRESS-210)
An entity reference (&
, >
, etc.) in a SOAP message with a SOAP header will now escape and unescape correctly. (HYEXPRESS-456)
Using document/wrapped style messaging now parses correctly. (HYEXPRESS-1029)
An entity reference (&
, >
, etc.) in a WSDL/Schema will now parse correctly. (HYEXPRESS-1031)
WSDL with embedded schema does not generate a sample data app. (HYEXPRESS-1082)
HydraExpress 4.6 is slower than LEIF 2.5 when marshalling (HYEXPRESS-2763)
Any elements under complex types, other elements, or named model groups will now have the parent's name prepended to the element name to create the appropriate class name. (HYEXPRESS-55)
Elements of simple types now have the correct xsi:type
attribute set when marshaled. (HYEXPRESS-209)
Using a fixed xsd:attribute
that is also "use=required"
will now still marshal out the fixed value. (HYEXPRESS-213)
Unmarshaling XML where a required attribute is missing now results in an error. (HYEXPRESS-419)
Using isValid()
on an unbounded xsd:sequence
of xsd:choices
now returns the correct value. (HYEXPRESS-923)
Generation of unmarshal for substitution group elements outputs bad 'if' statements. (HYEXPRESS-1056)
Two xsd:choices
in the same xsd:sequence
will now generate compilable code from rwsfgen
. (HYEXPRESS-1120)
An xsd:choice
where all of the elements are either unbounded or optional will now result in the correct enum value being set when no elements are present in the instance document (i.e. one of the optional elements was "chosen"
but not provided). (HYEXPRESS-1121)
SourcePro Users: HydraExpress 4.3.1 is certified with SourcePro Edition 10.
"-1"
in an HTTP message no longer causes a system crash. (HYRUNTIME-2118)A sequence of multiple choices will now generate code that properly sets the choice enums for each choice element. (HYEXPRESS-1120)
A choice with an optional element and a vector will now generate code that properly leaves the choice enum as "unknown" when no element is present in the instance document (ie. the optional element was chosen and omitted). (HYRUNTIME-1121)
SourcePro Users: HydraExpress 4.3 is certified with SourcePro Edition 10.
SourcePro Users: HydraExpress 4.1.1 is certified with SourcePro Edition 10.
SourcePro Users: HydraExpress 4.2 is certified with SourcePro Edition 10.
-maxgentypes
allows a limit to the number of generated types included in a single library. This will resolve issues when using extremely large schemas where the linker had trouble linking too many symbols into one library. (Bug 4009)SourcePro Users: HydraExpress 4.1 is certified with SourcePro Edition 10.
Cleaned up the output from rwagent -v
on Windows by removing unneeded libraries from the distribution.
The server-transports.xml
file in rwsfgen projects is now correctly copied to the correct file in the deployment zone RWSF_HOME/apps/servlet/<project>/transports.xml
)`.
Rolling log filenames have been altered to prepend the timestamp. This allows rolling log filenames and directories to have periods .
in them. (Bug 4970)
Fixed an issue when generating a project from an XSD with a default namespace set. (Bug 5149)
The correct port is now always added to the HTTP "host" header. (Bug 5150)
When a DLL fails to open, an error will be logged with the full error message returned by the operating system. (Bug 5403)
SourcePro Users: HydraExpress 4.0 is certified with SourcePro Edition 10.
The rwsfvars
script no functions properly when parenthesis are included in path. (Bug 4256)
The base Hydra Express product no longer has any JVM dependency. (Bug 4771)
The rwsfgen
utility no longer contains the hard-coded "conf" dir, so it can now be set via command line options. (Bug 5309)
The rwagent -v
command shouldn't have any more "(unknown)" entries. (Bug 4403)
An &
string in a wsdl element that has a pattern will no longer cause a rwsfgen
failure. (Bug 4927)
Multiple choices inside of a xsd:choice
no longer unmarshals incorrectly. (Bug 4988)
substitutionGroup
including extension of abstract base no longer fails during unmarshaling. (Bug 5064)
SourcePro Users: HydraExpress 3.5 is certified with SourcePro Edition 9, Update 1.
SourcePro Users: LEIF 2.5.1 is certified with SourcePro Edition 7. However, SourcePro Edition 8 has been included with Red Hat 4 and SLES 9.1 for binary compatibility reasons.
LEIF documentation: better coverage of security. (QA# 29275)
Default mode in LEIF::leifWriteFile
is incorrect (QA# 31210)
LEIF::CallInfo::getRequestTransportHeaderNames()
doc bug (QA# 31224)
RWCookie: setExpires()
member function addition; MaxAge
description change (QA# 28216)
Multiple cookies are not set when the request is routed through bundled Apache HTTP server. (QA# 31004)
soapenc
code error (QA# 31133)
HTTPS transport doesn't handle re-negotiation requests correctly (QA# 30968)
LEIF throws only one generic Exception instead of specific ones. (QA# 31118)
Add test for incorrect code generated for second generation complex type with simple content (QA# 30081)
If we have a completely empty abstract class, the dispatching code for subtypes isn't generated. (QA# 30690)
Bug in XMLReader class because we do not ignore the text in a CDATA
tag. (QA# 30720)
makefile bug when you have namespace prefix of "obj"
it causes makefile target errors (QA# 30920)
Support for redefine broken (from voice xml schema) (QA# 30981)
xmlbinding bugs found using FpML 4.1 and barclay's schemas (QA# 30996)
Escape sequence "\."
in regular expression not handled correctly. (QA# 31041)
Code not generated correctly with anonymous complex types in groups (QA# 31048)
Errors in CodeGen when top element name is same as filename in a default namespace. (QA# 31051)
Name conflict if there an element with a name choice
since leif generate an enumeration named choice
for the first choice element (QA# 31052)
Add full Regular Expression support to LEIF (closed as a duplicate of 31041) (QA# 31074)
marshaling a substitutionGroup
within a choice of a choice (VXML) (QA# 31104)
Comments with embedded newlines are not parsed correctly by XML-OL (QA# 31105)
XML-OL to have difficulty reading comments where a /n
follows a /r
(QA# 31106)
isValid()
finds valid file to be invalid for optional attributes (QA# 31141)
Anonymous Complex Type mapped to a new name in project file does not generate (QA# 31232)
If we have a completely empty abstract class, the dispatching code for subtypes isn't generated. (QA# 30690)
Can't find tag error is triggered when there is only one derivation for an abstract class (QA# 30695)
Element with fixed value should not be altered at runtime (QA# 30871)
LEIF2.5 bug with complex nested constructs (QA# 31045)
Unbound sequence error (QA# 31077)
incorrect isValid()
when using unbounded sequences of choices (QA# 31081)
isValid()
finds valid file to be invalid (not a bug in 2.5) (QA# 31122)
isValid()
code does not compile when fixed value and simpleType
(QA# 31183)
extension of a complex type causes generation to fail (QA# 31205)
SourcePro Users: LEIF 2.5.0 is certified with SourcePro Edition 7.
LEIF documentation: better coverage of security. (QA# 29275)
Command-line timeout provided in calls to connect()
, submit()
and getReply()
(QA# 29310)
Ability to place generated client, server and types code from wsdl2cpp
into different directories. (QA# 29812)
Fixed MSVC warnings (QA# 29852)
LEIF generated VC++ 6.0 projects do not compile (QA# 29998)
std::vector
and RWTValOrderedVector
should be used as storage containers for arrays (QA# 30071)
"="
operator template has no return value in IOU.cc
(QA# 30196)
Need support for Base64 encoding/decoding (QA# 30305)
Wrong default namespace when parsing end tag (QA# 30310)
LEIF DateTime has wrong time zone offset sign (QA# 30312)
Thread stack size default is inadequate on HPUX (QA# 30420)
LEIF should initialize named objects in the order they appear in objects.xml
(QA# 30417)
Container processes objects.xml
even for shutdown (QA# 30419)
Fix for failure of reference resolver to replace referrent element tag name with referenced name (QA# 29715)
Temp strings defined multiply when message has multiple parts defined (QA# 29716)
Base64 encoding for Http Auth header, missing "="
padding (QA# 29778)
includeChildTypeAttributes
option for web services components (QA# 29853)
Getting redefinition error for RWWinsockInfo
when combining multiple proxies in a single library (QA# 29992)
xsd:
qualification missing when generating ArrayOfString (QA# 30005)
Using -sourcepro
with soap Arrays of type decimal - rw/tools/decport.h
not included (QA# 30039)
Recursive SOAP arrays not supported (QA# 30089)
Generated documentation sometimes has a "+" where it should have a "&" (QA# 30121)
-noserver
switch causes incorrect code to be generated (QA# 30126)
SoapWorX -wrapped
flag (QA# 30177)
Axis Style Wrapped bug with datatypes (QA# 30178)
namespace mapping incomplete -- generated code won't compile (QA# 30206)
Need to more prominently document the requirement to incorporate the soaparray.cfg
mapping in user-created config files (QA# 30208)
Should incorporate wsdl name in SxDatatype12d.lib
and SxDatatype12d.dll
libraries (QA# 30209)
Generated code for Arrays do not compile (QA# 30228)
SOAP-ENCODED
Arrays without a size specified results in parse error (QA# 30294)
Need better support for escaping text in LEIF (QA# 30306)
Can't use HTTPS tunneling over an HTTP connection (QA# 30353)
Message listeners (or standalone server) should be multithreaded (QA# 30394)
dot not handled correctly in complex type names (QA# 30395)
setTransportProperty
does not work in proxy class (QA# 30414)
typedef'd simple type treated as complex type (QA# 30432)
Way to pass Init parameters for handlers not documented (QA# 30509)
Service imp's destroy()
method not called at container shutdown (QA# 30519)
SOAP request does not contain all namespaces (QA# 30589)
Incorrectly generating an unmarshalInner()
call on a complexElement
with no child elements (QA# 29757)
simple content extensions not handled correctly (QA# 30040)
Generating multiple forward declarations for the same class (QA# 30060)
Generating incorrect code for nilable elements in our marshalInner
method (QA# 30066)
Not generating multiple arrays with same name in different namespaces (QA# 30069)
Mapping bool to true
/false
with config file generates non-buildable code (QA# 30105)
Equality operator doesn't check attributes (QA# 30167)
Null pointer exception in "=="
operator for complexType
s with choices (QA# 30193)
No way to set mustExcapeText
to true in the LEIF::XmlWriter
class (QA# 30195)
Namespace mapping not propagated correctly, causing compilation to fail (QA# 30207)
Large number of enumerations causes isValid
method to reach compiler limit (QA# 30226)
Validation of enumerations during unmarshaling (QA# 30337)
When using declaration use="required"
, the "=="
operator does not check for the attribute (QA# 30350)
isValid()
does not check for mandatory attributes (QA# 30354)
Fix for failure of relative paths for locating included/imported schemas (QA# 29427)
isValid()
not working for derived types (QA# 30520)
XMLOL user guide section 9.6 example does not work (QA# 30850)
Failure to generate compile-able code for fixed value for an element (QA# 30859)
LEIF xml validation doesn't validate base classes (QA# 30902)
Incorrect documentation that XmlReader class can be constructed from a file stream (QA# 30911)
SourcePro Users: LEIF 2.2.0 is certified with SourcePro Edition 6.
LEIF now supports SOAP Array instances that do not have a size indicated in the SOAP-ENC:arrayType
attribute. (e.g. SOAP-ENC:arrayType="xsd:int[]"
). Note that LEIF already supported SOAP Array definitions of this kind, just not instances. (QA# 30294)
LEIF now allows circular imports of wsdl files. (QA# 30201)
SOAP Array classes now capitalize the name of the array member, consistent with other generated schema classes. (QA# 30228)
'.'
and other special characters are now handled correctly when found in message names used by wsdl:fault
definitions. (QA# 30395)
The -outdir
flag now works correctly with imported wsdl files. (QA# 30431)
Compile time failures resulting from schema elements based on simple types now fixed. (QA# 30432)
Escaping and unescaping of special characters in message data is now handled consistently. (QA# 30306) (QA# 30435)
Add URL to CallInfo
(QA# 30478)
Null pointer exception in "=="
operator for complexType
s with choices (QA# 30193)
Equality operator==
not generated correctly when vectors are involved (QA# 30167)
Need better support for escaping text (QA# 30306)
No way to set mustEscapeText
to true in the LEIF:XmlWriter
class (QA# 30195)
SourcePro Users: LEIF 2.1.0 is certified with SourcePro Edition 6.
Support for stand-alone server. Using -standalone
option with wsdl2cpp
a sample standalone server can be generated and service built, and deployed independently from LEIF server.
Handler API now allows for the aborting of message processing, which immediately aborts further message processing. In previous release this was not possible.
Transport handlers, which are invoked in both directions, are now invoked in reverse order in the opposite direction. This was not the case in previous release.
Recursive arrays are now supported.
Make sure XML Schema namespace qualification is present in the type attribute for SOAP array elements when the schema uses the default namespace rather than explicitly putting it in the SOAP array definition.
Allow for identical SOAP Array names to be declared in different namespaces.
New SOAP Array base implementation provides iterators and most other interface elements present in version 1.2.
Generated fault messages split into source and header files.
Make sure all appropriate SourcePro headers are included in SOAP Arrays when -sourcepro
is used for code generation.
Fixed bug with multiple nillable elements of complexType
.
Fixed problem groups that contain an annotation element.
Fixed problem that generated multiple forward declarations for the same class.
Fixed problem with types with same name as built-in types.
Fixed problem with choice member numbering.
Fixed problem with adding typeinfo
s for existing C++ type.
Fixed problem with interaction between default namespace and unqualified elements.
Added feature for getting and setting nested members with single function call.
SourcePro Users: LEIF 2.0.0 is certified with SourcePro Edition 6.
Improved HTTP connector--now supports HTTP 1.1 as well as HTTP 1.0.
Fix for a shutdown problem, if a second instance of Bobcat is started while one is already running the first instance could not be shut down.
Fix for a hanging problem, which occurred in some cases when a socket connection was suddenly terminated.
Support for IBM WebSphere MQ.
Transports can now be loaded and selected dynamically at runtime on the client. Transports are configured with an XML configuration file.
The HTTPS transport can be configured at runtime. Generated clients no longer need to link with a particular HTTPS library.
Support for one-way message patterns.
Support for asynchronous operations by using a thread to wait for a response.
Support for chaining message handlers
We no longer generate a unique servlet for each service. Instead we use a standard LEIF servlet. This servlet entry point is: sxserverlib.createRWSOAPworXServlet
. This also means that the generated server code no longer has a dependency on the Bobcat servlet container.
Support for controlling HTTP/HTTPS timeouts. The following timeouts can be specified: connect, submit, and reply.
Support for a basic logging system. Each logger is defined as a message handler.
Simpler service registration system. Services are now configured with an XML configuration file.
Remove the dependency on SourcePro when -stl is used.
Support for notification message patterns
Support for solicit-response message patterns
Created work around for compilers that don't allow unnamed temporaries as const ref arguments.
Fixed bug in test for list which caused infinite recursion in code generation.
Fixed problem with upcasing names already mapped by user.
Fixed problem with relative paths on import/include.
Fixed numerous validation issues and clarified support for simple type validation.
Fixed problem with setting defaults for elements represented with a vector.
Add support for sub-elements with simpleContent
.
Fixed various problems with member initialization.
Fixed timezone problem with date conversions using RWDate.
Added support for anyType
to handle complex content.
Added support for default values in complex types with simple content.
Added ability to not generate classes from top-level elements.
Improve support for CDATA
sections.
SourcePro Users: LEIF 1.2.1 is certified with SourcePro Edition 5.
Fix for the problem of the worker thread pool not growing.
Fix for the server's sudden death caused by SIGPIPE
on Unix.
Fix for the failure to process requests larger than 8K.
Enhancement: Added acceptor threads for accepting new requests the number of which is configurable in server.xml
Bobcat configuration file.
Enhancement: Added timeout configuration parameter for worker threads in server.xml
Bobcat configuration file.
Fix for a compile time failure when a schema specified a Soap Array within a complex type.
The pre-defined client for the DayOfWeek example now supports the -a
option in the same way as generated clients.
The include path for openssl libraries is now inserted in makefiles whenever -ssl
is specified.
The usage
display for wsdl2cpp
has been corrected.
Created work around for compilers that don't allow unnamed temporaries as const ref arguments.
Fixed bug in test for list which caused infinite recursion in code generation.
Fixed problem with upcasing names already mapped by user.
Fixed problem with relative paths on import/include.
Fixed numerous validation issues and clarified support for simple type validation.
Fixed problem with setting defaults for elements represented with a vector.
Add support for sub-elements with simpleContent
.
SourcePro Users: LEIF 1.2.0 is certified with SourcePro Edition 5.
Fix for the problem of the worker thread pool not growing.
Fix for the server's sudden death caused by SIGPIPE
on Unix.
Fix for the failure to process requests larger than 8K.
Enhancement: Added acceptor threads for accepting new requests the number of which is configurable in server.xml
Bobcat configuration file.
Enhancement: Added timeout configuration parameter for worker threads in server.xml
Bobcat configuration file.
New protocol independent architecture allows for the use of transports other than http. You may provide your own transport for use with SOAPworX generated clients and servers.
Support for accessing a single server implementation from multiple service ports
Support for SSL and HTTPS
Support for multi-dimensional arrays
Performance improvements
Improved handling of wsdl and schema imports
Support for SOAP-ENC
built in types
Support for wsdl:faults
(see the user's guide for details)
Support for schema types that have more than one level of restriction originating with a builtin type.
Example:
<xsd:simpleType name='First'>
<xsd:restriction base='xsd:string' />
</xsd:simpleType>
<xsd:simpleType name='Second' >
<xsd:restriction base='First' />
</xsd:simpleType>
Allow use of rpc/encoded with parts that are defined using an element rather than a type attribute, even though this is technically not allowed by WSDL 1.1.
Clean up temporary files generated by xmlol when called from wsdl2cpp
.
Deploy generated servlet binaries to RW_HOME/apps-bin
for Windows or RW_HOME/apps-lib
for UNIX. This keeps generated binaries separate from LEIF and SourcePro binaries.
Fix a code generation bug with numeric data type parameters when generating code for the stl (default) interface.
Fix problems with parameter order marshalling and unmarshalling.
Ensure that the encodingStyle
attribute is present SOAP messages when required.
Improved support for nillable.
Unmarshal signatures have been changed. There are now signatures for the base string type as well as for the mapped string type, if it exists.
Added support for non-ascii names.
Declspec macro has been added to generated operator==
so are no exported.
Fixed bug for elements in empty namespace.
Added better support for external marshalling.
Reworked import and include to guarantee single inclusion.
Fixed problem with generating validator method checkPattern.
Fixed inconsistency in use of target namespace for contained elements.
Fixed problem with sequence model groups containing optional elements.
Fixed problem with validation of choice elements.
Fixed bug that occurred when targets in makefile were incorrectly generated for top-level elements.
Fixed bug which occurred when there are multiple anonymous complex types that have parent elements with the same name and not all result in generated classes.
Fixed bug which occurred when import was failing if the schemaLocation
of the imported schema is the suffix of a schema previously included or imported.
Fixed bug which occurred when restricting a complexType
not defined in a target namespace resulted in a generated class that attempted to inherit from ::<classname>
.
Fixed bug which occurred when restricting a type in another namespace (from an imported xsd) resulted in the wrong C++ type for the inheritance.
Nillable elements with an illegal value of empty content are now treated as if xsi:nil
were set to true.
Fix problems with code generation of classes from model groups within a top-level group.
Add ability to set names with config file that depends on namespace.
Changed value of xsi:type
to be qualified name of default name for class. This ensures that the prefix will be consistent with the marshalled document.
SourcePro Users: LEIF 1.0.0 is certified with SourcePro Edition 4, Update 1.
SourcePro Users: LEIF's SourcePro binaries are built with an optimization turned ON for atomic operations. If, instead of using the SourcePro binaries provided with LEIF, you build the libraries for SourcePro Edition 4 update 1, then you must set to yes the RCB Advanced Question for turning on atomic handle body reference counting. If you fail to set atomic handle-body reference counting to yes, the binaries used by the LEIF server will be non-functional.
SourcePro Users on MSVC7: In addition, after installing SourcePro Edition 4, Update 1, you must make a minor modification in the header file rw/serial/StreamTraits.h
. The following code block can be found at the top of the StreamTraits.h
file:
#if defined (_MSC_VER) && (_MSC_VER >= 1300)
extern template class RWTCountingBody<RWMutexLock>;
#endif
which will need to be modified with this change:
#if defined (_MSC_VER) && (_MSC_VER >= 1300) && !defined(RW_POINTER_ATOMIC_HANDLE_BODY)
extern template class RWTCountingBody<RWMutexLock>;
#endif
This change is required to compile successfully with MSVC7 when atomic operations are enabled.
This version of HydraExpress supports a subset of the features defined by the XML Schema specification that is a W3C Recommendation, 2 May 2001. This specification can be found online at
http://www.w3c.org/TR/xmlschema-0/
This support for a static API is available only with HydraExpress services (code generated services and servlets) via the interface provided by the HydraExpress xmlbinding
library.
The following XML Schema features are supported in this release:
Named and anonymous complex type definitions
Complex type definitions with all, sequence and choice content models
Complex type definitions with simple content
Complex type derivations by restriction and extension (some limitations)
Element and attribute declarations
Simple types and simple type restrictions (restrictions not validated)
Element declarations with occurrence constraints greater than 1
Element declarations for optional elements (occurrence constraint of 0)
Default values for attributes and elements
Attribute group declarations
Group declarations with non-recurring sequence content model
Element and attribute references
Nil values
Namespace qualification of top-level elements and type definitions
Namespace qualification of qualified attributes and local elements
Schema in multiple documents using the include and import features
Any type, any element, and any attribute
Customizable mapping for element, attribute and complex type names
Customizable C++ namespace mapping for selected XML namespace URIs
Flexible type mapping for all 44 built-in types
Command-line option to generate API's with a STL-based interface
Validation of simple type facets through isValid()
Substitution groups
Union groups
Limited support for key/keyref
Limited support for complex schema types derived by restriction
Restricted types that have more restrictive facets, such as restricting the value set of a type
Restrictions which change the schema type, but do not result in a change in the mapped C++ type, such as restricting an xsd:string
to an xsd:NCName
Named model groups
This version of HydraExpress does not support the following features defined by the XML Schema specification that is a W3C Recommendation, 2 May 2001. This specification can be found online at
http://www.w3c.org/TR/xmlschema-0/
Robust name conflict resolution
Mixed Content
Unique and unique functionality of key
/keyref
HydraExpress has limited support for complex schema types derived by restriction. Specifically, the following constructs are unsupported.
Prohibiting a previously optional type
Restricting maxOccurs
from a value greater than one or unbounded to one occurrence
Restrictions that change the C++ mapped type, such as restricting from anyType
Limited support of any within a choice. Any is supported within choice as the only choice.
Validation of a subset of user defined facets on simple types. Due to the product's design of representing various types with appropriate C++ types, facets that rely on the string representation of the data cannot be validated. For example, if a floating point number had a pattern facet that required that numbers have two to four decimal digits, HydraExpress cannot validate this facet since the conversion loses this information. Unsupported facets include the pattern and enumeration facets for all converted types since they require comparisons with the string version of the data. Also unsupported are the fractionDigits and totalDigits facets on float
and double
instances, since this information is lost as well.
Validation of the basic types directly. Type conversions implicitly validate the string being converted but for restrictions on strings only the user-defined facets are validated.
Full support for optional and nillable elements through the generic interfaces. When setting members through set()
and object()
the flag indicating the selection is not set. The setXXX APIs in the DataObject
class use these generic methods and will thus not work correctly for optional or nillable elements.
The use of the word "choice" in an XML schema may result in a naming conflict, since HydraExpress generates an enumeration named choice for the first choice element of the <choice> declaration.
A workaround is to map a schema's choice element to another name, such as AltChoice, using the mapping element of the HydraExpress project file. For more information on creating customized mappings, see "Creating Customized Mappings" in the HydraExpress XML Binding Development Guide.