Commit e3c5af0783fd31d430eaf8b15ef0ecf7b6faafd2

Fix member that was array and optional which is not allowed.
  
31093109 <!-- MS documentation does not say shape is optional -->
31103110 <type name="shape" type="OfficeArtSpContainer" optional="true" />
31113111 <type name="deletedShapes" type="OfficeArtSpgrContainerFileBlock"
3112 array="true" optional="true" />
3112 array="true" />
31133113 <!-- according to ms spec, solvers is not optional -->
31143114 <type name="solvers" type="OfficeArtSolverContainer" optional="true" />
31153115 </struct>
  
112112 final boolean isChoice;
113113 final Limitation limitations[];
114114
115 Member(TypeRegistry r, Element e) {
115 Member(TypeRegistry r, Element e) throws IOException {
116116 registry = r;
117117 name = e.getAttribute("name");
118118 condition = (e.hasAttribute("condition")) ? e.getAttribute("condition")
122122
123123 isOptional = e.hasAttribute("optional");
124124 isArray = count != null || e.hasAttribute("array");
125 if (isOptional && isArray) {
126 throw new IOException("Member " + name
127 + " is optional and array, which is not allowed.");
128 }
125129 if (e.hasAttribute("type")) {
126130 typeName = e.getAttribute("type");
127131 isInteger = false;
254254 final boolean containsSureChoice;
255255 final boolean containsChoice;
256256
257 static int getSize(TypeRegistry registry, Element e) {
257 static int getSize(TypeRegistry registry, Element e) throws IOException {
258258 int size = 0;
259259 NodeList l = e.getChildNodes();
260260 for (int i = 0; i < l.getLength(); ++i) {
303303 return size;
304304 }
305305
306 Struct(TypeRegistry registry, Element e) {
306 Struct(TypeRegistry registry, Element e) throws IOException {
307307 registry.super(registry, e.getAttribute("name"), getSize(registry, e));
308308 sizeExpression = e.getAttribute("size");
309309