[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: Schema for Extensible Enumerative Attributes
It does work, but I don't like the idea of using it because it seems counter to the use of QName to not allow a default namespace, in my opinion. Plus I don't really like the idea of using a QName like a string with a string-like pattern. I do like the idea of ensuring a typo is caught by the schema and schema-aware parser but using a pattern like this and adding more complexity than QName alone seems to be rather costly to implementers. I'd prefer to defer to the TC on this one. Best regards --- Stephen D Green 2009/11/15 Stephen Green <stephen.green@documentengineeringservices.com>: > Isn't that overengineering things? > > Remember that any attribute can be added to > a prescription element with whatever datatype > required as an extension using the anyAttribute. > The QName (or for that matter, if the TC agrees > to use it, the normalizedString - v1.0.0.2 - or > NCName - v1.0.0.1) is good enough for most > purposes but if you need more, or a more > specific restriction or union, you can specify a > custom attribute to use instead of 'level' > (or 'conflict' if the element is one of the shared > TA parts). > > I'll try it out of academic curiosity but I really > don't think we should restrict things any more > (unless the TC as a whole agrees otherwise). > > Best regards > --- > Stephen D Green > > > > > 2009/11/15 Dennis E. Hamilton <dennis.hamilton@acm.org>: >> Try this: >> >> <xs:simpleType name="codeExtension_type"> >> <xs:restriction base="xs:QName"> >> <xs:pattern> value="[\c-[:]]+:[\c-[:]]+"> >> <xs:annotation> Any QName with a ":" in it, a PrefixedName >> </xs:annotation> >> </xs:pattern> >> </xs:restriction> >> </xs:simpleType> >> >> [ ... ] >> >> <xs:simpleType name="prerequisiteConflictCode_type"> >> <xs:union memberTypes="prerequisiteConflictBaseCode_type >> codeExtension_type"/> >> </xs:simpleType> >> >> <xs:simpleType name="prerequisiteConflictBaseCode_type"> >> <xs:restriction base="xs:NCName"> >> <xs:enumeration value="conjunction"/> >> <xs:enumeration value="disjunction"/> >> </xs:restriction> >> </xs:simpleType> >> >> [ ... etc. ] >> >> This should allow all PrefixedName QName forms that are namespace >> well-formed and it should reject all Unprefixed NCNames that are not in the >> list of enumeration values. >> >> I imagine the reason that QName is a base data type is for its use in the >> XML Schema for XML Schema itself. Fancy that! >> >> - Dennis >> >> >> >> >> -----Original Message----- >> From: Dennis E. Hamilton [mailto:dennis.hamilton@acm.org] >> http://lists.oasis-open.org/archives/tag/200911/msg00068.html >> Sent: Sunday, November 15, 2009 10:35 >> To: stephen.green@documentengineeringservices.com >> Cc: 'TAG TC List' >> Subject: RE: [tag] Re: Checking Enumerative QNames for the TAML-defined >> simple values >> >> Hmm, I don't think it is a default namespace problem. I think it is because >> we are not requiring a colon in the QName. >> >> Suggestions: >> >> Under <xs:simpleType name="prescriontLevelBaseCode_type> I suggest that you >> use >> <xs:restriction base="xs:NCName"> >> >> Under <xs:simpleType name="codeExtension_type"> do what is needed to require >> a colon in the QName using a pattern. >> >> >> - Dennis >> >> -----Original Message----- >> From: stephengreenubl@gmail.com [mailto:stephengreenubl@gmail.com] On Behalf >> Of Stephen Green >> http://lists.oasis-open.org/archives/tag/200911/msg00067.html >> Sent: Sunday, November 15, 2009 09:33 >> To: dennis.hamilton@acm.org >> Cc: TAG TC List >> Subject: [tag] Re: Checking Enumerative QNames for the TAML-defined simple >> values >> >> Yep, it does work - see latest schema (TAML v1.0.0.3) >> >> http://www.oasis-open.org/committees/download.php/35196/testAssertionMarkupL >> anguage-1-0-0-3.xsd >> >> [ ... ] >> >> I note though that the following is also valid (without a prefix): >> >> <testAssertion xmlns="http://docs.oasis-open.org/tag/taml/200911" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://docs.oasis-open.org/tag/taml/200911 >> http://www.oasis-open.org/committees/download.php/35196/testAssertionMarkupL >> anguage-1-0-0-3.xsd" >> id="illustation-1-0" schemaVersionId="1.0.0.3" time="08:39:23.312" >> date="2009-11-30"> >> <prescription level="deprecated"/> >> </testAssertion> >> >> because of XML Schema rules, so the namespace prefix is optional. >> >> I'm not expert enough to know for sure why this is but >> I guess it might be because the attribute itself does not need >> a namespace declaration; something to do with it automatically >> taking the default namespace?? Anyway, that it a bit too geeky >> for me to worry me. Just suffice that the namespace and prefix >> happen to be optional. The side effect of that is that folk have >> to be aware that the schema will not catch typos for the built-in >> values; i.e. >> >> [ ... ] >> >> >> --------------------------------------------------------------------- >> To unsubscribe from this mail list, you must leave the OASIS TC that >> generates this mail. Follow this link to all your TCs in OASIS at: >> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >> >> >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]