Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   XML (http://www.velocityreviews.com/forums/f32-xml.html)
-   -   xml schema: differentiate nodes with same name (http://www.velocityreviews.com/forums/t497791-xml-schema-differentiate-nodes-with-same-name.html)

Hans-Joerg Unger 04-10-2007 04:58 AM

xml schema: differentiate nodes with same name
 
Hi !

How can I differentiate nodes in an xml-schema which have the same
name (see "file"-element in the example) , but different locations and
meanings in the xml tree:

How can i differentiate the parsing of the file-element depended to
it's parent-node ?

A example xml-fragment:
---
<test>
<hello id="FOO">
<file name="hello.txt" /> <===== file element
</hello>
<goodbye id="FOOBAR">
<file id="123123"> <===== file element
<regex name="go.txt"
match='^(.*)AAA(.*)$' value="\\1BAZ" flags="m" />
<regex name="go.txt"
match='^(.*)AAA(.*)$' value="\\1BAZAZ" flags="m" />
</file>
</goodbye>
---

A example xml-schema fragment:
---
<xsd:element name="test">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="hello" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element ref="goodby" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<!-- This element points to a file-subelement -->
<xsd:element name="hello">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="file" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<!-- This element belongs to the previous element -->
<xsd:element name="file">
....
</xsd:element>

<!-- This element points to a completly different file-subelement -->
<xsd:element name="goodbye">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="file" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<!-- This element belongs to the previous element -->
<xsd:element name="file"">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="regex" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
---

szomiz 04-10-2007 05:37 AM

Re: xml schema: differentiate nodes with same name
 
Użytkownik "Hans-Joerg Unger" <sensl@gmx.de> napisał w wiadomości
news:slrnf1m6ba.jet.mslists@256bit.org...
> Hi !
>
> How can I differentiate nodes in an xml-schema which have the same
> name (see "file"-element in the example) , but different locations and
> meanings in the xml tree:


yes

<xsd:element name="test" type="testDef"/>

<xsd:complexType name="testDef">
> <xsd:sequence>

<xsd:element name="hello" type="helloDef" minOccurs="1"
maxOccurs="unbounded"/>
<xsd:element name="goodby" type="goodbyDef" minOccurs="1"
maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>

<!--/xsd:element-->
>
> <!-- This element points to a file-subelement -->

<!--xsd:element name="hello"-->
<xsd:complexType name="helloDef">
> <xsd:sequence>

<xsd:element name="file" type="fileDef1" minOccurs="1"
maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>

<!--/xsd:element-->
>
> <!-- This element belongs to the previous element -->

<xsd:complexType name="fileDef1">
....
</xsd:complexType>
>
> <!-- This element points to a completly different file-subelement -->

<!--xsd:element name="goodbye"-->
<xsd:complexType name="goodbyeDef">
> <xsd:sequence>

<xsd:element name="file" type="fileDef2" minOccurs="1"
maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>

<!--/xsd:element-->
>
> <!-- This element belongs to the previous element -->

<!--xsd:element name="file""-->
<xsd:complexType name="fileDef2">
> <xsd:sequence>
> <xsd:element ref="regex" minOccurs="1" maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>

<!--/xsd:element-->

sz.



Martin Honnen 04-10-2007 11:52 AM

Re: xml schema: differentiate nodes with same name
 
Hans-Joerg Unger wrote:

> How can I differentiate nodes in an xml-schema which have the same
> name (see "file"-element in the example) , but different locations and
> meanings in the xml tree:
>
> How can i differentiate the parsing of the file-element depended to
> it's parent-node ?


One way is to simply inline the element definitions e.g.


<xsd:element name="test">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="hello" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="file" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="goodby" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="file" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
...
</xsd:complexType>
</xsd:sequence>
</xsd:complexType>
<xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
--

Martin Honnen
http://JavaScript.FAQTs.com/


All times are GMT. The time now is 07:23 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.