[infinispan-issues] [JBoss JIRA] Resolved: (ISPN-891) Generated schema uses xs:sequence even if not semantically required
Vladimir Blagojevic (JIRA)
jira-events at lists.jboss.org
Mon Feb 7 10:16:39 EST 2011
[ https://issues.jboss.org/browse/ISPN-891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Blagojevic resolved ISPN-891.
--------------------------------------
Fix Version/s: 4.2.1.Final
Resolution: Done
Fixed on both master and 4.2.x
https://github.com/infinispan/infinispan/pull/150
> Generated schema uses xs:sequence even if not semantically required
> -------------------------------------------------------------------
>
> Key: ISPN-891
> URL: https://issues.jboss.org/browse/ISPN-891
> Project: Infinispan
> Issue Type: Feature Request
> Components: Configuration
> Affects Versions: 4.2.0.Final
> Reporter: Mircea Markus
> Assignee: Vladimir Blagojevic
> Fix For: 4.2.1.Final, 5.0.0.Final
>
>
> E.g. looking at AbstractCacheStoreConfig it has the following schema-generating annotation:
> @XmlType(propOrder= {"singletonStoreConfig", "asyncStoreConfig"})
> In resulting schema this translates to:
> <xs:complexType name="abstractCacheStoreConfig">
> <xs:complexContent>
> <xs:extension base="tns:abstractCacheLoaderConfig">
> <xs:sequence>
> <xs:element name="singletonStore" type="tns:singletonStoreConfig" minOccurs="0"/>
> <xs:element name="async" type="tns:asyncStoreConfig" minOccurs="0"/>
> </xs:sequence>
> ...
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> The xs:sequence element enclosing "singletonStore" and "async" enforces the ISPN xml configuration to have these cache loader elements defined in this particular order.
> In other words this would be a valid configuration snippet:
> <loaders shared="true" preload="false">
> <loader class="org.infinispan.loaders.file.FileCacheStore">
> <properties>
> <property name="location" value="${java.io.tmpdir}"/>
> </properties>
> <singletonStore enabled="true" pushStateWhenCoordinator="true" pushStateTimeout="20000" />
> <async enabled="true" flushLockTimeout="15000" threadPoolSize="10"/>
> </loader>
> </loaders>
> Whilst for this one the validation would fail:
> <loaders shared="true" preload="false">
> <loader class="org.infinispan.loaders.file.FileCacheStore">
> <properties>
> <property name="location" value="${java.io.tmpdir}"/>
> </properties>
> <async enabled="true" flushLockTimeout="15000" threadPoolSize="10"/>
> <singletonStore enabled="true" pushStateWhenCoordinator="true" pushStateTimeout="20000" />
> </loader>
> </loaders>
> The two configurations are semantically equivalent and there's no point in enforcing this ordering constraint on users.
> This is just an example of sequence enforcing, but the same thing appears in many places in the generated schema.
> A solution might be using the xs:all (vs xs:sequence) xs collection type (where possible):
> http://www.w3.org/2005/07/xml-schema-patterns.html#Collection
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list