In general, it is quite feasible to design an XML format which defines the model to be represented by XSD in a very compact and readable way - resembling closely the instance documents described by the XSD - and generate the XSD from such "XSD design" documents. A simple example:
<x:xsdd xmlns:x="http://www.xsdr.org/ns/xsdd" ...>
<x:stypes>
<x:stype name="LocaleOrLangType" typeDesc="#[a-z]{2}(-[A-Z]{2})?#"/>
...
</x:stypes>
<TravelAgenciesRQ>
<RQ_Metadata Language="$LocaleOrLangType" RequestID="xs:string" TransactionID="xs:string"
>#empty</RQ_Metadata>
<TravelAgencyFilter x:occ="?">
<x:_choice_>
<TravelAgencyIDs>
<TravelAgencyID x:occ="+">$NonEmptyString32</TravelAgencyID>
</TravelAgencyIDs>
<TravelAgencyShortNames>
<TravelAgencyShortName x:occ="+">$NonEmptyString</TravelAgencyShortName>
</TravelAgencyShortNames>
</x:_choice_>
</TravelAgencyFilter>
</TravelAgenciesRQ>
</x:xsdd>
In fact, as a rule I do not write XSDs any more, but write xsdd (XSD design) documents instead.
Cheers,
Hans-Jürgen
"Costello, Roger L." <costello@mitre.org> schrieb am 15:33 Montag, 2.Mai 2016:
element altitude { (xs:string)
required attribute units {"feet", "meters"}
}
I like it!
Are there validating engines which validate XML instances against schemas that are specified using this compact syntax?
Are people using this compact syntax in real-world applications?
/Roger
From: John Cowan [mailto:johnwcowan@gmail.com]
Sent: Monday, May 02, 2016 9:24 AM
To: Costello, Roger L. <costello@mitre.org>
Cc: xml-dev@lists.xml.org
Subject: Re: [xml-dev] Use DTDs!
<!ELEMENT altitude (#PCDATA)>
<!ATTLIST altitude
units (feet|meters) #REQUIRED>
element altitude { (xs:string)
required attribute units {"feet", "meters"}
XSD has plenty of problems, but it shouldn't be blamed for the verboseness of XML as a language notation.
--