XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] targetNamespace and default namespace

Sure? No. It is the baroque mess that is W3C XML schema so I'm sure of
nothing. :-)

That said, though I didn't include the complete instance document or
schema, which you can find here:

https://github.com/GoogleCloudPlatform/google-cloud-eclipse/pull/748/files

There is an extension element in the plugin.xml file, and it is in no
namespace.

This seems to be how Eclipse plugin schemas are normally set up, not
just an issue with this one pair of files.

I think this is wrong, and an abuse of schemas; but I'm not 100%
certain of that which is why I'm asking. Should elements declared in a
schema be in the targetNamespace in instance documents given that:

1. There is no explicit elementFormDefault in the the schema
2. The element is declared by a top-level xsd:element element in the schema.

I think the answer is yes, but I want to sanity check myself before I
start filing bugs against Eclipse.


On Thu, Sep 29, 2016 at 8:47 AM, Thomas Passin <list1@tompassin.net> wrote:
> The schema is for element "extension" but your instance contains an element
> "plugin/extension-point".  Are you sure the schema really applies?
>
> TomP
>
>
> On 9/29/2016 7:49 AM, Elliotte Rusty Harold wrote:
>>
>> In Eclipse plug-ins we encounter W3C XML Schemas like the following:
>>
>> <?xml version='1.0' encoding='UTF-8'?>
>> <!-- Schema file written by PDE -->
>> <schema
>> targetNamespace="com.google.cloud.tools.eclipse.appengine.libraries"
>> xmlns="http://www.w3.org/2001/XMLSchema";>
>>    <element name="extension">
>>        <complexType>
>>           <choice minOccurs="1" maxOccurs="unbounded">
>>              <element ref="library" />
>>           </choice>
>>           <attribute name="point" type="string" use="required" />
>>           <attribute name="id" type="string" />
>>           <attribute name="name" type="string">
>>              <annotation>
>>                 <appinfo>
>>                    <meta.attribute translatable="true" />
>>                 </appinfo>
>>              </annotation>
>>           </attribute>
>>        </complexType>
>>     </element>
>> ...
>>
>> Note in particular:
>>
>> 1. elementFormDefault is not specified. Therefore it takes the default
>> value of unqualified.
>> 2. extension is defined by a top-level element. Therefore the
>> targetNamespace applies and extension is defined only in the namespace
>> com.google.cloud.tools.eclipse.appengine.libraries
>> 3. The library element is a child of extension and therefore the
>> targetNamespace does not apply.
>>
>> Note the use of a Java package name as a target namespace. That's not
>> recommended, but what's more shocking are the instance documents this
>> describes. They look like this:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <?eclipse version="3.4"?>
>>   <plugin>
>>    <extension-point
>> id="com.google.cloud.tools.eclipse.appengine.libraries" name="App
>> Engine Libraries"
>> schema="schema/com.google.cloud.tools.eclipse.appengine.libraries.exsd"/>
>>
>> Note the complete lack of namespace declarations. In itself this is
>> not a problem. Documents don't have to use namespaces. However, if I'm
>> reading the schema spec correctly, this means that this document is
>> invalid according to the schema. Am I correct? The schema spec is
>> quite opaque on these matters.
>>
>> In more generic terms if a schema declares a target namespace, and
>> elementFormDefault="unqualified", then top-level elements defined in
>> the schema should be in the targetNamespace. Am I readin this right?
>>
>> FWIW, I'm primarily concerned with elements here. The extra
>> complexities of attributes aren't immediately relevant.
>>
>
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php



-- 
Elliotte Rusty Harold
elharo@ibiblio.org


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS