This question is asking about the correct way to represent NULL in XML: What is the correct way to represent null XML elements?
The accepted answer seems to be that providing the attribute xsi:nil="true" is the best way to explicitly provide empty content.
Another question refers to this tutorial regarding how to declare a nillable element in your XSD, and to provide one:
http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_over_st0.html
Given that information, I beleive I am following the guidelines, but my XSD validation is failing. Here's a super-simple piece of XML giving nil for the second child element:
<?xml version="1.0"?>
<plant xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
    <genus>GenusValue</genus>
    <species xsi:nil="true" />
</plant>
And here is my XSD that I think should validate that:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="plant">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="genus">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="60"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="species" nillable="true">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="60"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>   
</xs:schema>
The validation function within ColdFusion2016 (XmlValidate()) fails (with a not very helpful error message). Notepad++ (with installed XML validation tools) will also fail this validation, giving the error message:
Validation of current file using XML schema:
ERROR: Element 'species', attribute '{https://www.w3.org/2001/XMLSchema-instance}nil': The attribute '{https://www.w3.org/2001/XMLSchema-instance}nil' is not allowed.
Code generating the XML is not under my control. I've figured out how to validate:
<species></species>
but that's a different issue - it's not the way the XML is currently being provided. (So, solutions about unions with empty strings, minOccurs, etc. are not helpful unless they validate a tag as is given above.)
Maybe I am just missing or misunderstanding something about the XSD? (this also seems to follow the documentation given here: https://www.w3schools.com/xml/el_element.asp , though they are not actually showing XML which gives the xsi:nil="true" value.)
The zvon example is setting a tag which has a child as nillable, whereas the tag I am trying to set nillable is a child of something else and has no children itself, but it still seems like I am following the functional parts of what the zvon example is demonstrating?
Help?!? ;)
Thanks.