[
https://issues.apache.org/jira/browse/XERCESJ-1701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16618708#comment-16618708
]
Mukul Gandhi commented on XERCESJ-1701:
---------------------------------------
@Yitzhak
I agree that, with XSD 1.1 PK constraint can't be enforced across multiple
files.
You can consider keeping data (of the order 635 MB, that you're currently
keeping in XML) say in a RDBMS. If you define a unique constraint on an RDBMS
table, you then can't store 2 or more rows having same value of the unique key.
This might be better than, keeping multiple records with same key value in an
XML, and then checking the violation with XSD IDC constraint.
> Xerces-J 2.12.0: XSD 1.1 PK constraint scalability issue
> --------------------------------------------------------
>
> Key: XERCESJ-1701
> URL: https://issues.apache.org/jira/browse/XERCESJ-1701
> Project: Xerces2-J
> Issue Type: Bug
> Components: JAXP (javax.xml.validation)
> Affects Versions: 2.12.0
> Environment: Windows 10, 64-bit
> Reporter: Yitzhak Khabinsky
> Priority: Major
> Labels: XSD, key
> Fix For: 2.12.0
>
> Attachments: SubscriberCountFact.zip
>
>
> Hello,
> A test case is very simple:
> * XML file, size 700 MB
> * XSD file
> XSD is enforcing the following:
> * XML structure
> * Data elements/attributes data types
> * *PK constraint, composite primary key based on four elements*
> * No asserts/assertions/CTAs
> <xs:key name="PK">
> <xs:selector xpath="r"/>
> <xs:field xpath="CountryCode"/>
> <xs:field xpath="Date"/>
> <xs:field xpath="AnalyticsArrangementKey"/>
> <xs:field xpath="PaymentType"/>
> </xs:key>
>
> Saxon Java EE runs XSD validation for 2 minutes
> Xerces-J 2.12.0 cannot finish it at all, running for many hours.
> If I comment out the *xs:key* constraint, Xerces has no problems to finish
> the validation.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]