@@ -107,11 +107,18 @@ parseElement c = handleNamespaces c $ do
108 qname <- makeTargetQName name
108 qname <- makeTargetQName name
110+ nillable <- case anAttribute "nillable" c of
111+ Nothing -> return False
112+ Just "true" -> return True
113+ Just "false" -> return False
114+ _ -> parseError c "Unexpected value of nillable attribute"
110 return Xsd.Element
116 return Xsd.Element
111 { Xsd.elementName = qname
117 { Xsd.elementName = qname
112 , Xsd.elementType = tp
118 , Xsd.elementType = tp
113 , Xsd.elementAnnotations = annotations
119 , Xsd.elementAnnotations = annotations
114 , Xsd.elementOccurs = (minOccurs, maxOccurs)
120 , Xsd.elementOccurs = (minOccurs, maxOccurs)
121+ , Xsd.elementNillable = nillable
117-- | Parse inline type, simple or complex
124-- | Parse inline type, simple or complex