- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 18 Feb 2001 10:42:46 +0000
- To: "Joseph M. Reagle Jr." <reagle@w3.org>
- Cc: <xmlschema-dev@w3.org>
"Joseph M. Reagle Jr." <reagle@w3.org> writes: > Can someone give me a hint as to what exactly I'm doing wrong, or how I > might better achieve what I'm trying to do: create a xenc:CipherReference > akin to a ds:Reference but I don't need ds:DigestMethod, ds:DigestValue, > nor the ds:Type attribute > > http://policy.w3.org/01-17-xmlenc-schema.xsd > > <EncryptedData xmlns="http://www.w3.org/2001/02/xmlenc#"> > <EncryptionMethod Algorithm="foo"/> > <EncryptedKey NameKey="Joe"> > <EncryptionMethod Algorithm="foo"/> > <CipherData>123</CipherData> > </EncryptedKey> > <CipherReference URI="http://example.com/foo"> > <Transforms> > <Transform Algorithm="http://www.exmple.org/base64"/> > </Transforms> > </CipherReference> > </EncryptedData> > > ... > <invalid char='8' code='cvc-complex-type.1.2.4' line='9' > resource='file:/d:/2tmp > /test.xml'>element {http://www.w3.org/2001/02/xmlenc#}:Transform not > allowed her > e in element {http://www.w3.org/2001/02/xmlenc#}:Transforms: > <fsm> First, note what the error message actually says -- you've got a Transform where you shouldn't, not a Transforms. This is a clue to what's really wrong -- your namespaces are all **$#ed up. XSV is letting you down because it doesn't check restrictions -- your CypherReferenceType is completely bogus, because it tries to rename elements (e.g. from ds:Transforms to xenc:Transforms) as well as restricting them. Second, you don't need to close down occurrences to 0 for elements to get rid of them, or repeat attributes to retain them -- the following would have achieved the same (still unsatisfactory) result: <complexType name="CipherReferenceType"> <complexContent> <restriction base="ds:ReferenceType"> <sequence> <element name="Transforms" type="ds:TransformsType" minOccurs="0" maxOccurs="1" /> </sequence> </restriction> </complexContent> </complexType> But note this is bogus in another way -- DigestMethod and DigestValue are not optional in ds:ReferenceType, so you can't restrict them away in any case. Sorry, I don't see any way to get where you're going, other than define a CipherReferenceType as a new type which simply uses <element ref="ds:Transforms"/> and then be sure to put <Transforms xmlns="http://www.w3.org/2000/09/xmldsig#">...</Transforms> in your instance. -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Sunday, 18 February 2001 05:42:52 UTC