[oXygen-user] XInclude and ID/IDREF validation

Mark Baker
Thu Jul 22 12:07:48 CDT 2010


Wendell,

The XML parser does not process XIncludes. As the XInclude spec says:

"Processing of external entities (as with the rest of DTDs) occurs at parse
time. XInclude operates on information sets and thus is orthogonal to
parsing."

ID/IDREF validation occurs at parse time, and therefore cannot take account
of XIncluded material. The solutions, I would suggest, is not to abandon
Xinclude, but to redefine the ID/IDREF attributes so that they are no longer
ID/IDREF types, but a suitable string type, and then implement validation at
the application level rather than the relying on the parser to do the
validation. Parser level ID/IDREF validation is too limited to be considered
a general purpose validation mechanism for references in any case.

Mark
 

> -----Original Message-----
> From:  
> [mailto:] On Behalf Of Wendell Piez
> Sent: July 22, 2010 12:34 PM
> To: Oxygen User
> Subject: [oXygen-user] XInclude and ID/IDREF validation
> 
> Hi,
> 
> This is a classic problem, probably with a simple solution 
> (or workaround), but I can't locate it.
> 
> What can I do to get ID/IDREF to work across file boundaries 
> when using XInclude to construct a document with several modules?
> 
> I have tried setting up a Validation Scenario naming the 
> master document, and when subordinate modules are validated, 
> this appears to be working, inasmuch as I get validation 
> errors for all modules (including the master) when I validate 
> any of them. But IDREF values in attributes fail validation 
> when their corresponding ID values are in other modules.
> 
> I am figuring that this is either a setting I have failed to 
> make correctly (where should I be looking?), or maybe a 
> limitation of some kind, such as that when XInclude is 
> involved, only attributes named @xml:id are respected (this 
> is a wild guess), not just any attribute declared as type ID 
> in the DTD (which is what I have).
> 
> Or maybe I will have to consider going back to external 
> parsed entities? I am very reluctant to do this, since the 
> subordinate documents need their own DOCTYPE declarations to 
> pick up entity declarations of their own, and of course these 
> aren't legal in external parsed entities.
> 
> I know this is/was a bugaboo in the specification of 
> XInclude, but was figuring that in the time since its 
> inception, solutions have emerged....
> 
> Thanks for any tips, as always.
> 
> Cheers,
> Wendell
> 
> 
> 
> ======================================================================
> Wendell Piez                            mailto:
> Mulberry Technologies, Inc.                http://www.mulberrytech.com
> 17 West Jefferson Street                    Direct Phone: 301/315-9635
> Suite 207                                          Phone: 301/315-9631
> Rockville, MD  20850                                 Fax: 301/315-8285
> ----------------------------------------------------------------------
>    Mulberry Technologies: A Consultancy Specializing in SGML 
> and XML 
> ======================================================================
> 
> _______________________________________________
> oXygen-user mailing list
> 
> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
> 
> 




More information about the oXygen-user mailing list