XML Validation in IntelliJ

D

dorothys

Did anyone try to edit XML And XSD in intelliJ?

I wonder whether it support some XML validations, such as:

1) nillable=false
Although I defined an element should not be null, but it still allows
empty value.

2) xs:key
i tried to use "xs:key" to make the values of an element to be unique,
but seems no any effects..

Any advices will be highly appreciated!!

Any good XML Validator could be recommended?

-Dorothy
 
J

Joe Kesselman

dorothys said:
1) nillable=false
Although I defined an element should not be null, but it still allows
empty value.

Empty and nil are different things. Empty is a value, though a short
one. Nil is a separate flag meaning "no meaningful value", and is
indicated by the presence of the xsi:nil attribute. See:

http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#Nils

If you want to forbid the empty value, use facets to constrain the value
(if it's a string, set a minimum length).
2) xs:key
i tried to use "xs:key" to make the values of an element to be unique,
but seems no any effects..

If all you want is uniqueness, declare the value as unique. Key has
additional semantics when combined with keyref. See:

http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#specifyingUniqueness
http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#specifyingKeysAndtheirRefs
 
D

dorothys

Still have problem..:(

What i am trying to do is to check the uniqueness of "product" as
below:

<supported-products>
<product>m5</product>
<product>m10</product>
<product>m20</product>
<product>m40</product>
<product>m160</product>
<product>t640</product>
<product>t320</product>
</supported-products>

And I defined in XSD as below:

<xs:unique name="products-name-unique">
<xs:selector xpath=".//supported-products"/>
<xs:field xpath="./product/text()"/>
</xs:unique>

But it tells that

Error:Error:line (62)c-general-xpath: The expression
'./product/text()' is not valid with respect to the XPath subset
supported by XML Schema.

Any suggestions???

Thanks !!

-Dorothy
 
D

dorothys

Thanks..It has been fixed as below:

<xs:unique name="products-name-unique">
<xs:selector
xpath=".//supported-products/product"/>
<xs:field xpath="."/>
</xs:unique>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,002
Messages
2,570,258
Members
46,858
Latest member
FlorrieTuf

Latest Threads

Top