Solved

How can I add an attribute to a sequence element in an XSD document?

Posted on 2008-10-23
3
252 Views
Last Modified: 2012-05-05
I currently have an XSD document that gives me the following except for the password attribute Type="PasswordDigest".  Can someone tell me how to add this with my existing xsd?

<?xml version="1.0" encoding="utf-8"?>
<Message xmlns="http://www.surescripts.com/messaging">
            <Header>
                        <To>testsite</To>
                        <From>testsite</From>
                        <MessageID>4654664</MessageID>
                        <SentTime>2008-10-09T19:03:37.9Z</SentTime>
                        <Security>
                                    <UsernameToken>
                                                <Username>testname</Username>
                                                <Password Type="PasswordDigest">testpassword</Password>
                                                <Nonce>2254</Nonce>
                                                <Created>2008-10-09T19:03:37.9Z</Created>
                                    </UsernameToken>
                        </Security>
            </Header>
            <Body>
                        <DirectoryDownload>
                                    <AccountID>444</AccountID>
                                    <VersionID>4</VersionID>
                                    <Taxonomy>
                                                <TaxonomyCode>183500000X</TaxonomyCode>
                                    </Taxonomy>
                        </DirectoryDownload>
            </Body>
</Message>



<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Message">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Header" minOccurs="0"/>
				<xs:element ref="Body" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Header">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="To" minOccurs="0" />
				<xs:element ref="From" minOccurs="0"/>
				<xs:element ref="MessageID" minOccurs="0"/>
				<xs:element ref="SentTime" minOccurs="0"/>
				<xs:element ref="Security" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Body">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="DirectoryDownload" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Security">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="UsernameToken" minOccurs="0" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>	
	<xs:element name="UsernameToken">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Username" minOccurs="0" />
				<xs:element ref="Password" minOccurs="0" />   
				<xs:element ref="Nonce" minOccurs="0" />
				<xs:element ref="Created" minOccurs="0" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>	
	<xs:element name="DirectoryDownload">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="AccountID" minOccurs="0" />
				<xs:element ref="VersionID" minOccurs="0" />
				<xs:element ref="Taxonomy" minOccurs="0" />
				<xs:element ref="DirectoryDate" minOccurs="0" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>	
	<xs:element name="Taxonomy">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="TaxonomyCode" minOccurs="0" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>		
	<xs:element name="To" type="xs:string"/>
	<xs:element name="From" type="xs:string"/>
	<xs:element name="MessageID" type="xs:string"/>
	<xs:element name="SentTime" type="xs:string"/>
	<xs:element name="Username" type="xs:string"/>
	<xs:element name="Password" type="xs:string"/>
	<xs:element name="Nonce" type="xs:string"/>
	<xs:element name="Created" type="xs:string"/>
	<xs:element name="AccountID" type="xs:string"/>
	<xs:element name="VersionID" type="xs:string"/>
	<xs:element name="TaxonomyCode" type="xs:string"/>
	<xs:element name="DirectoryDate" type="xs:string"/>
</xs:schema>

Open in new window

0
Comment
Question by:cindymccartney
  • 2
3 Comments
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 500 total points
ID: 22795165
you will need a complexType/simpleContent in your definition for password

    <xs:element name="Password">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="Type"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

instead of

      <xs:element name="Password" type="xs:string"/>
0
 

Author Closing Comment

by:cindymccartney
ID: 31509459
Thanks!
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 22798678
welcome
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction Knockoutjs (Knockout) is a JavaScript framework (Model View ViewModel or MVVM framework).   The main ideology behind Knockout is to control from JavaScript how a page looks whilst creating an engaging user experience in the least …
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question