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

"John P. McCaskey" <[email protected]> Tue, 2 May 2017 11:30:53 -0400
Newsgroups gmane.text.tei.general
Message-ID <[email protected]>
Is there a way, in xml:base semantics, to explicitly make a pointer 
relative to the document instead of to the xml:base active at the node? 
Something like “thisDocument#id”?

If so, then the good practice could be to use this for @rendition and 
other internal pointers. Then modification of xml:base to, say, relocate 
images or hyperlinks, would not mess up the internal pointers. And it 
would allow pointers typically internal to still have external reference 
when needed.

John

On 5/2/2017 11:19 AM, 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
>>>