Hi, On Tue, 2005-06-07 at 07:33 -0600, Sebastian Kuzminsky wrote: > Aron Stansvik <[EMAIL PROTECTED]> wrote: > > On 6/1/05, Sebastian Kuzminsky <[EMAIL PROTECTED]> wrote: > > > All good and well so far. But now I want to limit the values that > > > set's id can take. > > > > This is not a libxml2-specific question, but I think you'll need to > > use XML Schemas [1], Relax NG or something else than DTDs to do this. > > DTDs lacks the sufficient expressive power for restricting attribute > > values to regular expressions. > > Thanks for the info & the pointers!
I'll try to give an example for XML Schemata with identity-constraints (IDC), since ID/IDREF is currently not implemented in Libxml2's XS processor. idc.xsd ------- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:test:foo" xmlns:f="urn:test:foo"> <xsd:element name="foo"> <xsd:unique name="fooKey"> <xsd:selector xpath="f:set"/> <xsd:field xpath="@id"/> </xsd:unique> </xsd:element> <xsd:element name="set"> <xsd:complexType> <xsd:attribute name="id" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="[-a-zA-Z0-9]"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> </xsd:schema> idc.xml ------- <f:foo xmlns:f="urn:test:foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:test:foo idc.xsd"> <f:set id="a"/> <f:set id="J"/> <f:set id="5"/> <f:set id="J"/> </f:foo> xmllint --noout --schema idc.xsd idc.xml Element '{urn:test:foo}set': Duplicate key-sequence ['J']. Regards, Kasimier _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
