schema documentation - does not link to includes

Having trouble installing Oxygen? Got a bug to report? Post it all here.
ArtS

schema documentation - does not link to includes

Post by ArtS »

Following the instructions in an earlier June post, I created links.xml and generated the schema documentation.
The result file has references that point to either #something (when generated with javascript off), or javascript:void()

This is the same under version 3.1 and 4

Here's a simplified version of the links.xml:

<?xml version="1.0" encoding="UTF-8"?>
<links xmlns="file://usr/local/Oxygen2.0/plugins/XS3P/etc/">
<schema file-location="11T_BookRQ.xsd" docfile-location="11T_BookRQ.html"/>
<!-- here are the included files -->
<schema file-location="11T_CruiseCommonTypes.xsd"/>
<schema file-location="11T_CommonPrefs.xsd"/>
<schema file-location="11T_CommonTypes.xsd"/>
<schema file-location="11T_SimpleTypes.xsd"/>
</links>

Here is the top of 11T_BookRQ.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://vacation.onetravel.com/xml/11T/"
xmlns:ot="http://vacation.onetravel.com/xml/11T/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="http://vacation.onetravel.com/xml/11T/1 ... nTypes.xsd"/>
<xs:include schemaLocation="http://vacation.onetravel.com/xml/11T/1 ... eTypes.xsd"/>
<xs:include schemaLocation="http://vacation.onetravel.com/xml/11T/1 ... nTypes.xsd"/>
<xs:element name="BookRQ">
...etc.

This is almost working. What am I doing wrong?
Thanks,
Art
george
Site Admin
Posts: 2095
Joined: Thu Jan 09, 2003 2:58 pm

Re: schema documentation - does not link to includes

Post by george »

Dear Art,
ArtS wrote: [...]
Here's a simplified version of the links.xml:

<?xml version="1.0" encoding="UTF-8"?>
<links xmlns="file://usr/local/Oxygen2.0/plugins/XS3P/etc/">
<schema file-location="11T_BookRQ.xsd" docfile-location="11T_BookRQ.html"/>
<!-- here are the included files -->
<schema file-location="11T_CruiseCommonTypes.xsd"/>
<schema file-location="11T_CommonPrefs.xsd"/>
<schema file-location="11T_CommonTypes.xsd"/>
<schema file-location="11T_SimpleTypes.xsd"/>
</links>
[...]
The first problem is the namespace for the links file elements, it should be http://titanium.dstc.edu.au/xml/xs3p. Another problem is that the links file should define a doc file location for each of the included schemas. See below a working sample assuming all the files are in the same folder. You should apply the schema documentation generation two times for both the main and included schema - each time the input and output documents should be set as specified in the links file. We have as an enhancement on bugzilla to implement this to require only the set of input schemas/target doc files specified with a GUI and generate automatically all the documentation files.

links..xml

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<links xmlns="http://titanium.dstc.edu.au/xml/xs3p">
<schema file-location="schema1.xsd" docfile-location="schema1.html"/>
<schema file-location="dataTypes.xsd" docfile-location="dataTypes.html"/>
</links>
schema1.xsd

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="dataTypes.xsd"/>
<xs:element name="test" type="DateTimeType"/>
</xs:schema>
dataTypes.xsd

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- -->
<!-- Date Time Type -->
<!-- -->
<xs:complexType name="DateTimeType">
<xs:sequence>
<xs:element name="Date" type="xs:date" minOccurs="1" maxOccurs="1"/>
<xs:element name="Time" type="xs:time" minOccurs="0" maxOccurs="1" default="00:00:00"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

Best Regards,
George
11thhourvacations
Posts: 2
Joined: Wed Jun 30, 2004 8:46 pm

Re: schema documentation - does not link to includes

Post by 11thhourvacations »

George,
Your examples work fine. However when I added an include in between dataTypes.xsd and schema1.xsd, it did not work. I think it is very common to have include files that include other include files, but I can't get the documentation to link thru to the include file.
Here's the change I made:
schema1.xsd has
<xs:include schemaLocation="dataIncluder.xsd"/>
instead of
<xs:include schemaLocation="dataTypes.xsd"/>

dataIncluder.xsd includes dataTypes.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="dataTypes.xsd"/>
</xs:schema>

Let me know if it is possible to produce documentation with active links with a schema arrangement like this.
Thanks,
Art
tavy
Posts: 372
Joined: Thu Jul 01, 2004 12:29 pm

Post by tavy »

Please make sure that you have the schema to doc file mapping for the dataIncluder schema in the links file. Also when you generate the documentation you should enable the Search Included Schemas option in the Schema Documentation dialog. See below a working sample.

links.xml

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<links xmlns="http://titanium.dstc.edu.au/xml/xs3p">
<schema file-location="schema1.xsd" docfile-location="schema1.html"/>
<schema file-location="dataIncluder.xsd" docfile-location="dataIncluder.html"/>
<schema file-location="dataTypes.xsd" docfile-location="dataTypes.html"/>
</links>

schema1.xsd

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="dataIncluder.xsd"/>
<xs:element name="test" type="DateTimeType"/>
</xs:schema>

dataIncluder.xsd

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="dataTypes.xsd"/>
</xs:schema>
dataTypes.xsd

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- -->
<!-- Date Time Type -->
<!-- -->
<xs:complexType name="DateTimeType">
<xs:sequence>
<xs:element name="Date" type="xs:date" minOccurs="1" maxOccurs="1"/>
<xs:element name="Time" type="xs:time" minOccurs="0" maxOccurs="1" default="00:00:00"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
11thhourvacations
Posts: 2
Joined: Wed Jun 30, 2004 8:46 pm

schema documentation - size limit?

Post by 11thhourvacations »

Thanks for all your help. I wasn't convinced it worked, but based on your test examples I finally got the links working.
There may be a size limit going on - or it could be some oddness in our xml - but I found that once my links file has less than 8 entries it started working. I changed which files were included in the 8 and it didn't seem to make a difference - once I added a ninth file the links didn't come up.
I tried to duplicate this in the test files but wasn't able to. Maybe the size of the files is important.
Anyway, this isn't a show stopper - I can get the docs generated in groups.
Thanks,
Post Reply