You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by bu...@apache.org on 2002/01/19 20:55:53 UTC
DO NOT REPLY [Bug 5926] New: -
Empty Extension on Simple Type is confused
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5926>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5926
Empty Extension on Simple Type is confused
Summary: Empty Extension on Simple Type is confused
Product: Xerces2-J
Version: 2.0.0 [beta]
Platform: PC
OS/Version: Windows 9x
Status: NEW
Severity: Normal
Priority: Other
Component: DOM
AssignedTo: xerces-j-dev@xml.apache.org
ReportedBy: binstock@pacifier.net
The easiest thing is to demonstrate:
In the XML instance, I put
<fullPrice currency="U S Dollars">32.00</fullPrice>
Please note that in the XML representation of fullPriceType
below, the <extension> is empty, that is - shouldn't change anything
from dollarPriceType.
The error I get is:
[Error] C:\XMLSchemaExample\theme\catalogTest.xml:14:35: cvc-complex-type.3.2.2:
Attribute 'currency' is not valid respect to the attribute wildcard of Elment '
fullPrice'.
If, in the extension, I add an another attribute,
everything works fine.
And here is "pricing.xsd" against which I am validating.
(Actually catalogTest.xsd in error message includes pricing.xsd;
catalogTest just creates an element:
<xsd:element name="freePrice" type="freePriceType"/>
).
-------- pricing.xsd ----------------
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:attribute name="currency"
type="xsd:token"
fixed="U S Dollars">
<xsd:annotation>
<xsd:documentation xml:lang="en">
U S Dollars are the only currency
currently allowed. This attribute
Is a great example of using "ref"
(elsewhere), but is not set up well
for extending to other currencies
later. This should really be a
type that keeps getting restricted.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup name="saleAttributeGroup"
id="pricing.sale.ag">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Anything that is on sale (or free,
which is a type of sale), must
have an authorization defined.
This is someone's name,
initials, ID, etc.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="employeeAuthorization" type="xsd:token"/>
<xsd:attribute name="managerAuthorization" type="xsd:token"/>
</xsd:attributeGroup>
<xsd:simpleType name="currencyAmountType"
id="pricing.currencyAmount.sType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Limit all transactions to less than
500,000.00 of any currency
This can be represented as NNNNNN.NN
or eight total digits, two of which are
after the decimal point.
*********************************************
Note that the W3C XML Schema
Recommendation does not support
non-instantiable simple types.
This simple type is conceptually
not instantiable. This type is not
intended to be used directly, only
indirectly, such as via the ...DollarType
simple types.
*********************************************
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="8" fixed="true"/>
<xsd:fractionDigits value="2" fixed="true"/>
<xsd:minExclusive value="0.00" fixed="true"/>
<xsd:maxInclusive value="500000.00" fixed="true"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="restrictedDollarAmountType"
id="pricing.restrictedDollarAmount.sType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Nothing sells for less than $1 or
greater than or equal to $10,000.00.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="currencyAmountType">
<xsd:minInclusive value="1.00"
fixed="true"/>
<xsd:maxExclusive value="10000.00"
fixed="true"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="dollarPriceType"
final="restriction"
block="restriction"
abstract="true"
id="dollarPriceType.pricing.cType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Currently, currency is limited to
U S Dollars. Note that this type defined
non-instantiable. A derived type must be
defined that sets the range.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="restrictedDollarAmountType">
<xsd:attribute ref="currency"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="fullPriceType"
block="#all"
final="#all"
id="fullPriceType.pricing.cType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The pricing element for all items
sold at full price have no elements
or attributes. The price is simply
the amount, stored in the value
of the element.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="dollarPriceType"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="freePriceType"
block="#all"
final="#all"
id="freePriceType.pricing.cType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Anything that is free has no
value (i.e., price), but must
have an authorization code.
This is a complex type with
"empty" content.
-- Shorthand Notation --
</xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="saleAttributeGroup"/>
</xsd:complexType>
<xsd:complexType name="salePriceType"
block="#all"
final="extension"
id="salePriceType.pricing.cType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Anything on sale must have a price
and an authorization
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="dollarPriceType">
<xsd:attributeGroup ref="saleAttributeGroup"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="clearancePriceType"
block="#all"
final="#all"
id="clearancePriceType.pricing.cType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Anything on sale must have a price
and an authorization
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent id="cpt.simpleContent">
<xsd:restriction base="salePriceType">
<xsd:maxInclusive value="10.00"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:group name="priceGroup">
<xsd:annotation>
<xsd:documentation xml:lang="en">
A price is any one of the following:
* Full Price (with amount)
* Sale Price (with amount and authorization)
* Clearance Price (with amount and authorization)
* Free (with authorization)
</xsd:documentation>
</xsd:annotation>
<xsd:choice id="pg.choice">
<xsd:element name="fullPrice"
type="fullPriceType"/>
<xsd:element name="salePrice"
type="salePriceType"/>
<xsd:element name="clearancePrice"
type="clearancePriceType"/>
<xsd:element name="freePrice" type="freePriceType"/>
</xsd:choice>
</xsd:group>
</xsd:schema>
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org