- From: Mukul Gandhi <gandhi.mukul@gmail.com>
- Date: Mon, 24 Sep 2012 09:11:20 +0530
- To: "Costello, Roger L." <costello@mitre.org>
- Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Hi Roger,
I was using Xerces.
If you model the schema little differently, it can be more correct
than what I posted last. Here's the modified schema design that I
would propose, for this use case:
New XML document:
<Test xsdNs="http://www.w3.org/2001/XMLSchema">
<Rule name="element" />
</Test>
(with this content model we assume that, a combination of attribute
values for @name and @xsdNs can be formed into a QName value which
needs to be xsd:element in the XSD namespace)
New XSD document:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Test">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Rule" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="xsdNs" type="xsd:anyURI"/>
<xsd:assert test="every $rule in Rule satisfies (QName(@xsdNs,
$rule/@name) eq xsd:QName('xsd:element'))"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
This modified content model, I think would take care of namespace
issues correctly.
On Mon, Sep 24, 2012 at 3:09 AM, Costello, Roger L. <costello@mitre.org> wrote:
>> <xsd:assert test="QName('http://www.w3.org/2001/XMLSchema',
>> string(@name)) eq xsd:QName('xsd:element')"/>
>
> Nice work Mukul.
>
> You used XERCES, right?
>
> I tried that with SAXON and got errors.
>
> So either XERCES is accepting as valid something that it shouldn't or SAXON is not accepting as valid something that it should.
>
> XML Schema Working Group: what is the truth?
>
> /Roger
--
Regards,
Mukul Gandhi
Received on Monday, 24 September 2012 03:42:08 UTC