diff options
-rw-r--r-- | cpp/src/slice2xsd/Gen.cpp | 8 | ||||
-rw-r--r-- | cpp/src/slice2xsd/ice.xsd | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/slice2xsd/Gen.cpp b/cpp/src/slice2xsd/Gen.cpp index 544755be7fa..3d4e1277929 100644 --- a/cpp/src/slice2xsd/Gen.cpp +++ b/cpp/src/slice2xsd/Gen.cpp @@ -192,7 +192,7 @@ Slice::Gen::visitClassDefStart(const ClassDefPtr& p) end(); // xs:complexType O << sp << nl << "<xs:element name=\"" << scopeId << p->name() - << "\" type=\"tns:" << internalId << scopeId << p->name() << "Type\"/>"; + << "\" type=\"tns:" << internalId << scopeId << p->name() << "Type\" nillable=\"true\"/>"; return true; } @@ -397,6 +397,9 @@ Slice::Gen::visitSequence(const SequencePtr& p) << "\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>"; end(); // xs:sequence + + O << nl << "<xs:attribute name=\"length\" type=\"xs:long\"/>"; + end(); // xs:complexType O << sp; @@ -456,6 +459,9 @@ Slice::Gen::visitDictionary(const DictionaryPtr& p) << " minOccurs=\"0\" maxOccurs=\"unbounded\"/>"; end(); // xs:sequence + + O << nl << "<xs:attribute name=\"length\" type=\"xs:long\"/>"; + end(); // xs:complexType O << sp; diff --git a/cpp/src/slice2xsd/ice.xsd b/cpp/src/slice2xsd/ice.xsd index 06dd041f40c..1ab107f5e7e 100644 --- a/cpp/src/slice2xsd/ice.xsd +++ b/cpp/src/slice2xsd/ice.xsd @@ -37,7 +37,7 @@ All Rights Reserved <xs:attribute name="type" type="xs:string"/> </xs:complexType> - <xs:element name="object" type="tns:_internal.objectType"/> + <xs:element name="object" type="tns:_internal.objectType" nillable="true"/> <xs:complexType name="_internal.facetContentType"> <xs:sequence> @@ -55,6 +55,7 @@ All Rights Reserved <xs:sequence> <xs:element name="e" type="tns:_internal.facetContentType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> + <xs:attribute name="length" type="xs:long"/> </xs:complexType> <xs:element name="facet" type="tns:_internal.facetType"/> |