XHTML Inclusion impossible
Issues related with the oNVDL implementation of NVDL.
-
- Posts: 15
- Joined: Thu Jul 12, 2007 6:20 pm
- Location: Ipswich, UK
XHTML Inclusion impossible
If you employ the external declaration of element contents, as outlined in the RelaxNG tutorial...
http://relaxng.org/compact-tutorial-20030326.html
...then it causes an unspecified oNDL syntax error.
Indeed there is apparently no way to specify that an element defined via a RelaxNG compact syntax should include XHTML content. So any ideas would be welcomed.
This is my original RelaxNG file, which references the html-basic schema in place inside a Jing distribution.
default namespace = "http://cefn.com/blog/"
namespace rng = "http://relaxng.org/ns/structure/1.0"
namespace xhtml = "http://www.w3.org/1999/xhtml"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
grammar {
start = source
source = element source {
(post | page | source)* |
attribute uri {xsd:anyURI}
}
post = element post {
labelling, journalling, external "../lib/java/jing/jing-20030619/doc/xhtml/xhtml-basic.rng"
}
page = element page {
labelling, journalling, external "../lib/java/jing/jing-20030619/doc/xhtml/xhtml-basic.rng"
}
file = element file {
labelling, attaching
}
labelling = attribute name { xsd:IDREF}?, attribute title { xsd:string}, attribute description { xsd:string}?
journalling = attribute created { xsd:date}, attribute published { xsd:date}?
attaching = attribute bytes { xsd:base64Binary }, attribute mimetype { xsd:string }
}
http://relaxng.org/compact-tutorial-20030326.html
...then it causes an unspecified oNDL syntax error.
Indeed there is apparently no way to specify that an element defined via a RelaxNG compact syntax should include XHTML content. So any ideas would be welcomed.
This is my original RelaxNG file, which references the html-basic schema in place inside a Jing distribution.
default namespace = "http://cefn.com/blog/"
namespace rng = "http://relaxng.org/ns/structure/1.0"
namespace xhtml = "http://www.w3.org/1999/xhtml"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
grammar {
start = source
source = element source {
(post | page | source)* |
attribute uri {xsd:anyURI}
}
post = element post {
labelling, journalling, external "../lib/java/jing/jing-20030619/doc/xhtml/xhtml-basic.rng"
}
page = element page {
labelling, journalling, external "../lib/java/jing/jing-20030619/doc/xhtml/xhtml-basic.rng"
}
file = element file {
labelling, attaching
}
labelling = attribute name { xsd:IDREF}?, attribute title { xsd:string}, attribute description { xsd:string}?
journalling = attribute created { xsd:date}, attribute published { xsd:date}?
attaching = attribute bytes { xsd:base64Binary }, attribute mimetype { xsd:string }
}
-
- Site Admin
- Posts: 2095
- Joined: Thu Jan 09, 2003 2:58 pm
Hi,
You have a compact schema and you are trying to make an external reference to another grammar, but those files contain Relax NG schemas in XML form. You cannot mix Relax NG compact with XML. For instance if you place the below schema in a file in the same folder as the XHTML schema then it should be valid:
Best Regards,
George
You have a compact schema and you are trying to make an external reference to another grammar, but those files contain Relax NG schemas in XML form. You cannot mix Relax NG compact with XML. For instance if you place the below schema in a file in the same folder as the XHTML schema then it should be valid:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="http://cefn.com/blog/" xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<ref name="source"/>
</start>
<define name="source">
<element name="source">
<choice>
<zeroOrMore>
<choice>
<ref name="post"/>
<ref name="page"/>
<ref name="source"/>
</choice>
</zeroOrMore>
<attribute name="uri">
<data type="anyURI"/>
</attribute>
</choice>
</element>
</define>
<define name="post">
<element name="post">
<ref name="labelling"/>
<ref name="journalling"/>
<externalRef href="xhtml-basic.rng"/>
</element>
</define>
<define name="page">
<element name="page">
<ref name="labelling"/>
<ref name="journalling"/>
<externalRef href="xhtml-basic.rng"/>
</element>
</define>
<define name="file">
<element name="file">
<ref name="labelling"/>
<ref name="attaching"/>
</element>
</define>
<define name="labelling">
<optional>
<attribute name="name">
<data type="IDREF"/>
</attribute>
</optional>
<attribute name="title">
<data type="string"/>
</attribute>
<optional>
<attribute name="description">
<data type="string"/>
</attribute>
</optional>
</define>
<define name="journalling">
<attribute name="created">
<data type="date"/>
</attribute>
<optional>
<attribute name="published">
<data type="date"/>
</attribute>
</optional>
</define>
<define name="attaching">
<attribute name="bytes">
<data type="base64Binary"/>
</attribute>
<attribute name="mimetype">
<data type="string"/>
</attribute>
</define>
</grammar>
George
George Cristian Bina
-
- Posts: 15
- Joined: Thu Jul 12, 2007 6:20 pm
- Location: Ipswich, UK
No Compatc Syntax
So it looks like I can't use the compact syntax at all. Or is there a way to maintain this information in the compact syntax, but export through trang somehow to produce an XML file which Oxygen will put up with.
I've been putting all this work in so I could use the compact syntax, you see - it was fully specified in XSD before.
I've been putting all this work in so I could use the compact syntax, you see - it was fully specified in XSD before.
-
- Posts: 15
- Joined: Thu Jul 12, 2007 6:20 pm
- Location: Ipswich, UK
OK found a fix
Did it the other way round using trang translation from compact to xml then back again.
Exported the compact syntax to XML, then added the declaration as you suggested in the XML example, then re-exported to compact.
Then it generated all the compact syntax equivalents of the original imports - the full set of xhtml rng schemata from jing in compact form.
Here's the ant build I used for the two steps...
<target name="rngcompact2xml">
<java jar="lib/java/trang/trang.jar" fork="true">
<arg file="forms/blog.rnc"/>
<arg file="forms/blog.rng"/>
</java>
</target>
<target name="rngxml2compact">
<java jar="lib/java/trang/trang.jar" fork="true">
<arg file="forms/blog.rng"/>
<arg file="forms/blog.rnc"/>
</java>
</target>
...plus an edit in between to add the following element in place of the original element declaration for xhtml elements...
<externalRef href="../lib/java/jing/jing-20030619/doc/xhtml/xhtml.rng"/>
Exported the compact syntax to XML, then added the declaration as you suggested in the XML example, then re-exported to compact.
Then it generated all the compact syntax equivalents of the original imports - the full set of xhtml rng schemata from jing in compact form.
Here's the ant build I used for the two steps...
<target name="rngcompact2xml">
<java jar="lib/java/trang/trang.jar" fork="true">
<arg file="forms/blog.rnc"/>
<arg file="forms/blog.rng"/>
</java>
</target>
<target name="rngxml2compact">
<java jar="lib/java/trang/trang.jar" fork="true">
<arg file="forms/blog.rng"/>
<arg file="forms/blog.rnc"/>
</java>
</target>
...plus an edit in between to add the following element in place of the original element declaration for xhtml elements...
<externalRef href="../lib/java/jing/jing-20030619/doc/xhtml/xhtml.rng"/>
Return to “oNVDL Related Issues”
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service