Thanks for closing the loop, Tim.


Scott



From: Tim Bray <tb...@textuality.com>
Sent: Tuesday, January 21, 2025 10:45 AM
To: Gould, James <jgo...@verisign.com>
Cc: m...@lowentropy.net; regext@ietf.org; drafts-expert-review-comm...@iana.org
Subject: [EXTERNAL] [regext] Re: [IANA #1410981] expert review for 
draft-ietf-regext-epp-eai (xml-registry)



Caution: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.

I have gone and checked up on the most recent standards concerning this 
practice and it turns out I was out of date.  I withdraw my objections and see 
no problems with the draft.  Pardon my interruption.  -Tim



On Jan 21, 2025 at 7:07:39 AM, "Gould, James" 
<jgo...@verisign.com<mailto:jgo...@verisign.com>> wrote:

   Tim,



   The type element value references a type definition in one of the namespaces 
defined at the top of the XML schema.  In the case of EPP RFC 5730, the 
<schema> element defines the namespaces:



   <schema targetNamespace="urn:ietf:params:xml:ns:epp-1.0"

           xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"

           xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"

           xmlns=”http://www.w3.org/2001/XMLSchema”

           elementFormDefault="qualified">



   The “epp” element with <element name="epp" type="epp:eppType"/> references 
the eppType in the “epp” namespace that matches the targetNamespace, with the 
definition:



     <complexType name="eppType">

       <choice>

         <element name="greeting" type="epp:greetingType"/>

         <element name="hello"/>

         <element name="command" type="epp:commandType"/>

         <element name="response" type="epp:responseType"/>

         <element name="extension" type="epp:extAnyType"/>

       </choice>

     </complexType>





   Another namespace could define the type eppType, such as the “eppcom” 
namespace, where the inclusion of the namespace in the type value enables the 
XML parser to know which type applies.  See later that this is referred to as a 
QName.





   For your example:



   <something xmlns:foo="urn:ietf:params:xml:ns:epp-1.0”><element name="epp" 
type=“foo:eppType”/>



   This would work if the xmlns:foo is included in the <schema> element, like:



   <schema targetNamespace="urn:ietf:params:xml:ns:epp-1.0"

           xmlns:foo="urn:ietf:params:xml:ns:epp-1.0"

           xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"

           xmlns=”http://www.w3.org/2001/XMLSchema”

           elementFormDefault="qualified">



   <element name="epp" type=“foo:eppType”/>



     <complexType name="eppType">

       <choice>

         <element name="greeting" type="epp:greetingType"/>

         <element name="hello"/>

         <element name="command" type="epp:commandType"/>

         <element name="response" type="epp:responseType"/>

         <element name="extension" type="epp:extAnyType"/>

       </choice>

     </complexType>





   In looking at https://www.w3.org/TR/xmlschema11-1/#Schemas, in states in 
section 3.17.2.1 “References to Schema Components”:



   Reference to schema components from a schema document is managed in a 
uniform way, whether the component corresponds to an element information item 
from the same schema document or is imported (References to schema components 
across namespaces (<import>) 
(§4.2.6)<https://www.w3.org/TR/xmlschema11-1/#composition-schemaImport>) from 
an external schema (which may, but need not, correspond to an actual schema 
document). The form of all such references is a 
·QName·<https://www.w3.org/TR/xmlschema11-1/#gloss-QName>.



   [Definition:]  A QName is a name with an optional namespace qualification, 
as defined in [XML Namespaces 
1.1]<https://www.w3.org/TR/xmlschema11-1/#ref-xml-namespaces-1.1>. When used in 
connection with the XML representation of schema components or references to 
them, this refers to the simple type 
QName<https://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/datatypes.html#QName>
 as defined in [XML Schema: 
Datatypes]<https://www.w3.org/TR/xmlschema11-1/#ref-xsp2>. For brevity, the 
term ·QName·<https://www.w3.org/TR/xmlschema11-1/#gloss-QName> is also used to 
refer to ·actual values·<https://www.w3.org/TR/xmlschema11-1/#key-vv> in the 
value space of the 
QName<https://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/datatypes.html#QName>
 simple type, which are expanded 
names<https://www.w3.org/TR/2004/REC-xml-names11-20040204/#dt-expname> with a 
[Definition:]  local name and a [Definition:]  namespace name.



   There are many examples in https://www.w3.org/TR/xmlschema11-1/#Schemas of 
the type attribute value referencing a namespace, such as the following 
examples:



   <xs:attribute name="age" type="xs:positiveInteger" use="required"/>

   <xs:element name="birthday" type="xs:date"/>
   <xs:element name="facet" type="xs:facet" abstract="true"/>





   --



   JG




   James Gould
   Fellow Engineer
   
jgo...@verisign.com<applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgo...@verisign.com>

   703-948-3271
   12061 Bluemont Way
   Reston, VA 20190

   
Verisign.com<http://secure-web.cisco.com/1T2alYGUqRTc6T5qNtKbggi015ViK6d-Fdkvp_cvK12SVexcOgikwLHC42WgPQuBeVvSt4RFCQhlYy8ClgTREmlgRbJLqz3TyX67Bi3d4EWLruNkESvK0IRGVIVYgXOVeA0hZ1IkwxD_mqRyTiGpeun365sTlGUwbH3Uz8EAxNky4WQpjcggEA70sS8I10t7uz8H3F6ZmzxsmGmI7mlvoBeQ0EBTecOIj0JCEEP6BhVVUT1iEPMPL6nTxDsY5XDveAtMsm5fdChoua19tmJHJJWyCyB8Pa9i-851oMPDnFUg/http%3A%2F%2Fverisigninc.com%2F>



   From: Tim Bray <tb...@textuality.com<mailto:tb...@textuality.com>>
   Date: Friday, January 17, 2025 at 11:12 AM
   To: James Gould <jgo...@verisign.com<mailto:jgo...@verisign.com>>
   Cc: "m...@lowentropy.net<mailto:m...@lowentropy.net>" 
<m...@lowentropy.net<mailto:m...@lowentropy.net>>, 
"regext@ietf.org<mailto:regext@ietf.org>" 
<regext@ietf.org<mailto:regext@ietf.org>>, 
"drafts-expert-review-comm...@iana.org<mailto:drafts-expert-review-comm...@iana.org>"
 
<drafts-expert-review-comm...@iana.org<mailto:drafts-expert-review-comm...@iana.org>>
   Subject: [EXTERNAL] Re: [regext] Re: [IANA #1410981] expert review for 
draft-ietf-regext-epp-eai (xml-registry)



Caution: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.

   On Jan 17, 2025 at 6:22:32 AM, "Gould, James" 
<jgo...@verisign.com<mailto:jgo...@verisign.com>> wrote:

      Tim,



      Thank you for the review.  In your note, is the concern that the 
namespace prefix is being used for the element name (e.g., “addlEmail”)?  I 
found similar definitions in the following EPP RFCs, which are broadly 
implemented:



      •         EPP RFC 5730 with xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" 
and <element name="epp" type="epp:eppType"/>.



   No, the element name is fine, it’s the value of the “type” attribute that is 
troublesome.  The namespace prefix “epp" is really only designed to prefix 
element & attribute names, not to be used inside the element content or the 
attribute value.  There aren’t any standards (afaik) that require a standard 
off-the-shelf XML processor to make those prefix/URI mappings available.



   For example, would you expect this to work?



   <something xmlns:foo="urn:ietf:params:xml:ns:epp-1.0”><element name="epp" 
type=“foo:eppType”/>



   I mean, it’s probably OK, enough people do this that most XML software can 
handle it. It’s just that as the designated XML pedant, I feel I should point 
out departures from the letter of the standard.



    -T



_______________________________________________
regext mailing list -- regext@ietf.org
To unsubscribe send an email to regext-le...@ietf.org

Reply via email to