Hi Tony,


Interesting idea to have schemas associated through collections. But that
doesn't have to stop you from validating against different versions from
XQuery. It should be possible to do something like this (pseudo-code):



Import module fpml1.xqy

Import module fpml2.xqy



If ($fpml-version = 1) then fpml1:validate($doc)

Else if ($fpml-version = 2) then fpml2:validate($doc)



-- fpml1.xqy



Import schema "/fpml1/fpml-main.xsd"



-- fpml2.xqy



Import schema "/fpml2/fpml-main.xsd"



Kind regards,

Geert



*Van:* [email protected] [mailto:
[email protected]] *Namens *Anthony Coates
*Verzonden:* woensdag 5 februari 2014 9:39
*Aan:* MarkLogic Developer Discussion
*Onderwerp:* Re: [MarkLogic Dev General] schema validation



Classification: Public

Thanks Geert.  FpML is indeed my issue, because FpML only changes namespace
URI for major versions, but FpML documents contain a version number
indicating the major & minor version of FpML that the sender was using.
 Ideally, the receiver should be able to use the same major/minor version
Schemas for validation, etc. as the sender did, because strategies like
using the latest minor version with the same major version mean that you
have to trust that there are no backwards compatibility issues, not even
subtle ones, and it's safer for production systems if you don't be too
trusting.

As a general rule, I always discourage production systems from adding
schema locations to XML files, because the receiver should decide which
Schema(s) to use (if any), not the sender, just on security grounds.

I see that you could modifying a temporary copy of an XML file, add any
necessary schema locations and then validate it, that's an interesting
idea.  I also liked what others posted around using XSLT to do validation,
that seems workable.

However, that only helps for validation, it doesn't help you with enabling
Schema-aware XQueries.

It would be helpful if you could associate a collection of documents with a
collection of Schemas, rather than only have the current coarser
association of a database of documents to a database of Schemas.

Cheers, Tony.

____________________________________________________



Anthony B. Coates (Tony)
VP | Solution/Data Architect

Deutsche Bank AG, Filiale London
Global Technology and Operations (GTO)
1 Appold Street, EC2A 2UU London, United Kingdom
Tel. +44(20)754-77217
Mobile +44(79)0543-9026
Email [email protected]




From:

"Geert J." <[email protected]>

To:

MarkLogic Developer Discussion <[email protected]>,

Date:

04/02/2014 21:09

Subject:

Re: [MarkLogic Dev General] schema validation


------------------------------




Hi Tony,

You mean that the fpml xsd is using xsd:include to incorporate declarations
from various files, all for the same targetNamespace, right?

That could indeed cause trouble if you let MarkLogic try to find the
top-level schema file itself. It will find multiple hits for the same
targetNamespace, and doesn't have logic to recognize there is a top-level
file among them. You'd have to be lucky, if MarkLogic should find the
correct one by itself.

But you can point MarkLogic into the right direction. You can for instance
use schemaLocation to specify a specific xsd file. You can also use schema
imports to specify a specific file. If you point to the top-level file, I'd
expect validation to work just fine..

Kind regards,
Geert

*Van:* [email protected] [mailto:
[email protected]] *Namens *Anthony Coates
*Verzonden:* dinsdag 4 februari 2014 17:14
*Aan:* MarkLogic Developer Discussion
*Onderwerp:* Re: [MarkLogic Dev General] schema validation

Classification: Public

The problem, as least for me sometimes, is that MarkLogic assumes you can
select the Schema(s) based on the namespace URI, and so you are stuck if
you need to select a specific Schema or set of Schemas where there isn't a
1-to-1 mapping between Schemas and namespace URIs (as often there isn't,
e.g. for FpML).

Cheers, Tony.
____________________________________________________



Anthony B. Coates (Tony)
VP | Solution/Data Architect

Deutsche Bank AG, Filiale London
Global Technology and Operations (GTO)
1 Appold Street, EC2A 2UU London, United Kingdom
Tel. +44(20)754-77217
Mobile +44(79)0543-9026
Email [email protected]

From:

"Geert J." <[email protected]>

To:

MarkLogic Developer Discussion <[email protected]>,

Date:

04/02/2014 14:10

Subject:

Re: [MarkLogic Dev General] schema validation



------------------------------





Hi Rob,

As far as I know, no. But you can specify a different database as Schemas
database. It should in principle be possible to select a docs database
itself as Schemas database..

Kind regards,
Geert

*Van:* [email protected] [mailto:
[email protected]] *Namens *Whitby, Rob
*Verzonden:* dinsdag 4 februari 2014 13:55
*Aan:* MarkLogic Developer Discussion
*Onderwerp:* [MarkLogic Dev General] schema validation

Hi,

I can't seem to figure out how to use a schema without loading it into the
schemas db. Is something like this possible?

let $xml := <foo>...
let $schema := <xs:schema>...
let $validate := ???

Thanks
Rob

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general





---

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and delete this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for
additional EU corporate and regulatory disclosures.
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general





---

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and delete this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for
additional EU corporate and regulatory disclosures.

<<image001.gif>>

<<image002.gif>>

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to