Re: @xml:base with @rendition (and maybe other pointers)

Hugh Cayless <[email protected]> Tue, 2 May 2017 14:36:14 -0400
Newsgroups gmane.text.tei.general
Message-ID <CAObhq+c_7A4_AQKuNy9PZoMDQgROdCAj_bQLk6OodmzRHiWa5w@mail.gmail.com>
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
>>>>>
>>>>>
>>>