diff --git a/src/designer/data/ui4.xsd b/src/designer/data/ui4.xsd
index d785a3e99bcd579e1e89acee2ce033d21955d5ac..8c4576ea6d3d9c177ecac66b7a71c47f02943c1d 100644
--- a/src/designer/data/ui4.xsd
+++ b/src/designer/data/ui4.xsd
@@ -23,7 +23,7 @@
                         <xs:element name="slots" type="Slots" minOccurs="0" />
                         <xs:element name="buttongroups" type="ButtonGroups" minOccurs="0" />
                 </xs:all>
-                <xs:attribute name="version" type="xs:string" use="required" />
+                <xs:attribute name="version" type="xs:string" />
                 <xs:attribute name="language" type="xs:string" />
                 <xs:attribute name="displayname" type="xs:string" />
 <!-- Legacy attribute generated by uic3 -->
@@ -40,7 +40,7 @@
         </xs:complexType>
 
         <xs:complexType name="Include" mixed="true" >
-                <xs:attribute name="location" type="xs:string" use="required" />
+                <xs:attribute name="location" type="xs:string" />
                 <xs:attribute name="impldecl" type="xs:string" />
         </xs:complexType>
 <!-- include end -->
@@ -54,7 +54,7 @@
         </xs:complexType>
 
         <xs:complexType name="Resource">
-                <xs:attribute name="location" type="xs:string" use="required" />
+                <xs:attribute name="location" type="xs:string" />
         </xs:complexType>
 <!-- resource end -->
 
@@ -66,7 +66,7 @@
                         <xs:element name="property" type="Property" minOccurs="0" maxOccurs="unbounded" />
                         <xs:element name="attribute" type="Property" minOccurs="0" maxOccurs="unbounded" />
                 </xs:sequence>
-                <xs:attribute name="name" type="xs:string" use="required" />
+                <xs:attribute name="name" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="Action">
@@ -74,12 +74,12 @@
                         <xs:element name="property" type="Property" minOccurs="0" maxOccurs="unbounded" />
                         <xs:element name="attribute" type="Property" minOccurs="0" maxOccurs="unbounded" />
                 </xs:sequence>
-                <xs:attribute name="name" type="xs:string" use="required" />
+                <xs:attribute name="name" type="xs:string" />
                 <xs:attribute name="menu" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="ActionRef">
-                <xs:attribute name="name" type="xs:string" use="required" />
+                <xs:attribute name="name" type="xs:string" />
         </xs:complexType>
 <!-- actions end -->
 
@@ -89,7 +89,7 @@
                         <xs:element name="property" type="Property" minOccurs="0" maxOccurs="unbounded" />
                         <xs:element name="attribute" type="Property" minOccurs="0" maxOccurs="unbounded" />
                 </xs:sequence>
-                <xs:attribute name="name" type="xs:string" use="required" />
+                <xs:attribute name="name" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="ButtonGroups">
@@ -130,13 +130,13 @@
 <!-- custom widget support end -->
 
         <xs:complexType name="LayoutDefault">
-                <xs:attribute name="spacing" type="xs:integer" use="required" />
-                <xs:attribute name="margin" type="xs:integer" use="required" />
+                <xs:attribute name="spacing" type="xs:integer" />
+                <xs:attribute name="margin" type="xs:integer" />
         </xs:complexType>
 
         <xs:complexType name="LayoutFunction">
-                <xs:attribute name="spacing" type="xs:string" use="required" />
-                <xs:attribute name="margin" type="xs:string" use="required" />
+                <xs:attribute name="spacing" type="xs:string" />
+                <xs:attribute name="margin" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="TabStops">
@@ -151,7 +151,7 @@
                         <xs:element name="attribute" type="Property" minOccurs="0" maxOccurs="unbounded" />
                         <xs:element name="item" type="LayoutItem" minOccurs="0" maxOccurs="unbounded" />
                 </xs:sequence>
-                <xs:attribute name="class" type="xs:string" use="required" />
+                <xs:attribute name="class" type="xs:string" />
                 <xs:attribute name="name" type="xs:string" />
                 <xs:attribute name="stretch" type="xs:string" />
                 <xs:attribute name="rowstretch" type="xs:string" />
@@ -217,7 +217,7 @@
                         <xs:element name="addaction" type="ActionRef" minOccurs="0" maxOccurs="unbounded" />
                         <xs:element name="zorder" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                 </xs:sequence>
-                <xs:attribute name="class" type="xs:string" use="required" />
+                <xs:attribute name="class" type="xs:string" />
                 <xs:attribute name="name" type="xs:string" />
                 <xs:attribute name="native" type="xs:boolean" />
         </xs:complexType>
@@ -242,26 +242,26 @@
             <xs:sequence>
                         <xs:element name="color" type="Color" />
             </xs:sequence>
-                <xs:attribute name="position" type="xs:double" use="required" />
+                <xs:attribute name="position" type="xs:double" />
         </xs:complexType>
 
         <xs:complexType name="Gradient">
             <xs:sequence>
                         <xs:element name="gradientStop" type="GradientStop" maxOccurs="unbounded" />
             </xs:sequence>
-                <xs:attribute name="startx" type="xs:double" use="required" />
-                <xs:attribute name="starty" type="xs:double" use="required" />
-                <xs:attribute name="endx" type="xs:double" use="required" />
-                <xs:attribute name="endy" type="xs:double" use="required" />
-                <xs:attribute name="centralx" type="xs:double" use="required" />
-                <xs:attribute name="centraly" type="xs:double" use="required" />
-                <xs:attribute name="focalx" type="xs:double" use="required" />
-                <xs:attribute name="focaly" type="xs:double" use="required" />
-                <xs:attribute name="radius" type="xs:double" use="required" />
-                <xs:attribute name="angle" type="xs:double" use="required" />
-                <xs:attribute name="type" type="xs:string" use="required" />
-                <xs:attribute name="spread" type="xs:string" use="required" />
-                <xs:attribute name="coordinatemode" type="xs:string" use="required" />
+                <xs:attribute name="startx" type="xs:double" />
+                <xs:attribute name="starty" type="xs:double" />
+                <xs:attribute name="endx" type="xs:double" />
+                <xs:attribute name="endy" type="xs:double" />
+                <xs:attribute name="centralx" type="xs:double" />
+                <xs:attribute name="centraly" type="xs:double" />
+                <xs:attribute name="focalx" type="xs:double" />
+                <xs:attribute name="focaly" type="xs:double" />
+                <xs:attribute name="radius" type="xs:double" />
+                <xs:attribute name="angle" type="xs:double" />
+                <xs:attribute name="type" type="xs:string" />
+                <xs:attribute name="spread" type="xs:string" />
+                <xs:attribute name="coordinatemode" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="Brush">
@@ -270,14 +270,14 @@
                     <xs:element name="texture" type="Property" />
                     <xs:element name="gradient" type="Gradient" />
                 </xs:choice>
-                <xs:attribute name="brushstyle" type="xs:string" use="required" />
+                <xs:attribute name="brushstyle" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="ColorRole">
             <xs:sequence>
                         <xs:element name="brush" type="Brush" />
             </xs:sequence>
-                <xs:attribute name="role" type="xs:string" use="required" />
+                <xs:attribute name="role" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="ColorGroup">
@@ -327,8 +327,8 @@
         </xs:complexType>
 
         <xs:complexType name="Locale">
-                <xs:attribute name="language" type="xs:string" use="required" />
-                <xs:attribute name="country" type="xs:string" use="required" />
+                <xs:attribute name="language" type="xs:string" />
+                <xs:attribute name="country" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="SizePolicy">
@@ -482,7 +482,7 @@
                         <xs:element name="ulonglong" type="xs:unsignedLong" />
                         <xs:element name="brush" type="Brush" />
                 </xs:choice>
-                <xs:attribute name="name" type="xs:string" use="required" />
+                <xs:attribute name="name" type="xs:string" />
                 <xs:attribute name="stdset" type="xs:integer" />
         </xs:complexType>
 
@@ -513,7 +513,7 @@
                 <xs:element name="x" type="xs:integer"/>
                 <xs:element name="y" type="xs:integer"/>
             </xs:all>
-            <xs:attribute name="type" type="xs:string" use="required" />
+            <xs:attribute name="type" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="DesignerData">
@@ -537,13 +537,13 @@
         </xs:complexType>
 
         <xs:complexType name="PropertyToolTip">
-            <xs:attribute name="name" type="xs:string" use="required" />
+            <xs:attribute name="name" type="xs:string" />
         </xs:complexType>
 
         <xs:complexType name="StringPropertySpecification">
-            <xs:attribute name="name" type="xs:string" use="required" />
-            <xs:attribute name="type" type="xs:string" use="required" />
-            <xs:attribute name="notr" type="xs:string"/>
+            <xs:attribute name="name" type="xs:string" />
+            <xs:attribute name="type" type="xs:string" />
+            <xs:attribute name="notr" type="xs:string" />
         </xs:complexType>
 
 </xs:schema>