[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] XML Schema complex type restriction
- From: u123724 <u123724@gmail.com>
- To: Michael Kay <mike@saxonica.com>
- Date: Mon, 2 Oct 2017 20:18:05 +0200
> Requiring the assertion to be true ONLY for content that satisfies the grammar would be a ridiculous burden on schema authors.
In fact, it has been proven untractable for XML Schema [1], but not
for DTDs [2]:
[1]: http://www.cs.toronto.edu/tox/papers/xsc.pdf
"What's Hard about XML Schema Constraints?"
[2]: https://courses.cs.washington.edu/courses/cse591d/01sp/xml_integ.pdf
"On XML Integrity Constraints in the Presence of DTDs"
Marcus Reichardt
sgmljs.net
On Fri, Sep 29, 2017 at 10:39 AM, Michael Kay <mike@saxonica.com> wrote:
> More realistically, imagine you have a complex type whose content model is
> <element name="para" minOccurs="0" maxOccurs="unbounded"/>, and the
> assertion says test="exists(para)", then the assertion on its own would
> allow
>
> <para/>
> <fig/>
> <fig/>
>
> which the complex type's grammar does not allow.
>
> Requiring the assertion to be true ONLY for content that satisfies the
> grammar would be a ridiculous burden on schema authors.
>
> Michael Kay
> Saxonica
>
>
> On 29 Sep 2017, at 07:39, Rick Jelliffe <rjelliffe@allette.com.au> wrote:
>
> Oops, my example made no sense. Here is a better stab:
>
> For example, if you have an element of XSD type Integer and the assertion
> constrains the element to be either the text "MentalSpasm" or the number 32
> (XSD assertion tests are on the typed document), the type is constrained to
> be the number 32. The constraint of having text "MentalSpasm" would never
> be exercised.
>
> Rick
>
> On Fri, Sep 29, 2017 at 3:48 PM, Mukul Gandhi <gandhi.mukul@gmail.com>
> wrote:
>>
>> On 28 September 2017 at 21:07, Rick Jelliffe <rjelliffe@allette.com.au>
>> wrote:
>>>
>>> I think assertions are always subsumptive in your terminology. Even if
>>> they appear to allow otherwise.
>>>
>>> For example, if you have an element of type Integer and the assertion
>>> constrains the element to be either the text "54" or the number 32, the type
>>> is constrained to be the number 32. The constraint of having text "54"
>>> would never be exercised.
>>>
>>> This is because an assertion is essentially ANDed with the grammar or
>>> datatype or keyref etc constraints. Like a Bloom filter.
>>>
>>
>> Thanks for your perspective. Its nice to think like this.
>>
>>
>>
>> --
>> Regards,
>> Mukul Gandhi
>
>
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]