Re: @xml:base with @rendition (and maybe other pointers)
"John P. McCaskey" <[email protected]> Tue, 2 May 2017 14:47:18 -0400
| Newsgroups | gmane.text.tei.general |
|---|---|
| Message-ID | <[email protected]> |
Is this correct? Do identifiers refer only to the current document? I assumed you could have a dictionary page, www.somedictionary.com/a.html, set using xml:base, and then have @target values in a <ref> of #apple, #apricot, and #avocado. Is that not right? (Sent from John's iPhone 6.) > On May 2, 2017, at 2:36 PM, Hugh Cayless <[email protected]> wrote: > > Unless I'm just confused, a fragment identifier (#whatever) won't, at least in HTTP(S)-land, result in a new dereference, regardless of the value of @xml:base. They exclusively refer to parts of the same document, so there's no possibility for confusion. @xml:base only applies to any relative URIs in your document. > > In any case, I'm firmly of the opinion that @xml:base is one of those too-clever-by-half ideas that should be avoided like the plague. > > If I'm wrong, I'd be happy to be educated! > > All the best, > Hugh > >> On Tue, May 2, 2017 at 2:19 PM, Martin Holmes <[email protected]> wrote: >> HI Piotr, >> >> I must admit I don't really understand the problem here. If there's efficiency to be gained from using @xml:base (shorter pointers in many pointing attributes), but it causes other pointers (such as @rendition) to be more difficult to handle, I would use a private URI scheme and a <prefixDef> to handle it. >> >> One unanswered question might be whether the dereferencing process in a prefixDef is supposed to take account of @xml:base, though... >> >> Cheers, >> Martin >> >> >>> On 2017-05-02 11:10 AM, Piotr Banski wrote: >>> Hi Martin, >>> >>> So if you have a <ref> with both a @target that is resolved via xml:base >>> in your project, and with @rendition, will your strategy be to cancel >>> xml:base on this very element for the sake of @rendition and therefore >>> use a full URL for the @target (think about how nicely un-maintainable >>> it's going to be) OR will your strategy be to use some kind of >>> "file://.#bing" magic (<-- would that even work, sustainably?) ? >>> >>> Whichever you choose, the result is going to be suboptimal. I was just >>> suggesting localizing this suboptimality in such a way as to make it >>> useful for other purposes. I for one would be quite happy to have >>> attributes which could only be interpreted as fragment identifiers >>> resolvable against the current document. >>> >>> Best, >>> >>> P. >>> >>> >>>> On 05/02/17 17:19, Martin Holmes wrote: >>>> I think the same rules should apply to all pointer types. John is >>>> right to remind us of something I've been guilty of many times over: >>>> writing pointer-handling code that doesn't think to look at @xml:base. >>>> But that's my fault, not the fault of XML or TEI. I think the >>>> semantics of @xml:base and the semantics of pointers are clear and >>>> should be consistently implemented for all attributes and ids. If >>>> there's an @xml:base, all pointers in the document should be resolved >>>> based on it. >>>> >>>> Cheers, >>>> Martin >>>> >>>>> On 2017-05-02 06:46 AM, Piotr BaĆski wrote: >>>>> One thought is to introduce a tei.localref datatype that would be >>>>> defined as an XML name prepended with a '#'. That could help in cases >>>>> where one would like to create (by means of Schematron[1]) an analogy to >>>>> the IDREF mechanism. And since the type wouldn't be defined as an URI, >>>>> xml:base expansion wouldn't apply to it. >>>>> >>>>> [1] Maybe the Schematron check should even be an internal part of the >>>>> definition of that datatype, to force document() -- except I am not so >>>>> sure how "document()" would behave in such cases. I'd love to be >>>>> enlightened. >>>>> >>>>> Musing aloud, >>>>> Piotr >>>>> >>>>>> On 05/02/17 14:46, John P. McCaskey wrote: >>>>>> @rendition has datatype teidata.pointer. Pointers can point to >>>>>> locations >>>>>> either within the current document or elsewhere. They should be >>>>>> expanded >>>>>> with any @xml:base attributes up the XML tree. >>>>>> >>>>>> But @rendition is supposed to point to an element in the tagsDecl >>>>>> element, normally within the same document, though presumably it could >>>>>> be the tagsDecl in some other document. >>>>>> >>>>>> My question: Is it really the case that a rendition pointer should >>>>>> honor >>>>>> parent @xml:base attributes? >>>>>> >>>>>> I guess the theoretical answer is yes, but I can imagine cases where >>>>>> the >>>>>> @xml:base attributes are primarily for setting image paths, .xml >>>>>> directories, and http addresses, and the coder does not really intend >>>>>> the @rendition attributes to point externally. >>>>>> >>>>>> Thoughts? >>>>>> >>>>>> John >>>>>> >>>> >